------------------- AI Summary -------------------
We upgraded Telerik UI for ASP.NET AJAX from version 2026.2.708 to 2026.3.812, with no changes to our navigation menu code. Our RadPanelBar menu is populated server-side via DataBind() using a SiteMapDataSource (no client-side population). Since the upgrade, clicking a menu item frequently does not navigate to its URL: the menu shifts vertically, the clicked item is not selected, and no navigation occurs. This is impacting customers’ ability to use our site.
--------------- End of AI Summary ---------------
We are requesting assistance to troubleshoot and resolve this issue as quickly as possible. This problem is causing significant usability issues.
verified still present in 2026.2.519 — RadCalendarScript.js
When `EnableNavigationAnimation` is enabled (the default) and the browser zoom is not 100% (and Windows uses fractional display scaling such as 125%/150%),
navigating the RadCalendar to the NEXT month removes the day grid and never renders the new one. The calendar title updates, but the view area stays empty permanently.
Because `_enableNavigation(false)` and `EnableDateSelect = false` are set before the animation and only restored when it completes, the calendar is also left with navigation
and date selection disabled — the control is dead until the page is reloaded.
Navigating BACKWARD works correctly (see root cause below for why), which is a useful way to confirm this specific bug.
End users hit this routinely because Chrome persists per-site zoom and many laptops default to 125%/150% display scaling.
Steps to reproduce:
1. Page with a default RadCalendar:
<telerik:RadCalendar ID="RadCalendar1" runat="server" EnableNavigationAnimation="true" /> 2. Open in Chrome, set zoom to 110% (Ctrl and +), reload.
3. Click the "next month" arrow (repeat at a couple of zoom levels, e.g. 110%,
125%, 150% — whether a given level triggers it depends on rounding of the
calendar's rendered width).
c = function () {
o > 0 && r.scrollLeft + r.offsetWidth < r.scrollWidth ||
o < 0 && r.scrollLeft > 0
? (r.scrollLeft += 10 * o, window.setTimeout(c, 10))
: d(); // d() re-attaches the new table and re-enables the control
};`Element.scrollLeft` is a fractional double, while `offsetWidth`/`scrollWidth` are rounded integers. At zoom levels other than 100%, `scrollLeft` clamps at a fractional maximum (e.g. 219.4545) while the rounded widths suggest an integer maximum (e.g. 220 with scrollWidth 440). The forward-direction termination
check `scrollLeft + offsetWidth < scrollWidth` (439.45 < 440) then remains true forever: `scrollLeft += 10` is clamped and makes no further progress, so the loop reschedules itself indefinitely and `d()` is never called. The new view table is never appended, and navigation/date selection are never re-enabled.
The backward direction terminates on `scrollLeft > 0`, and `scrollLeft` clamps to exactly 0 — which is why only forward navigation is affected.
When the Grid is groupped and showing/hiding columns on client-side, the table layout is broken. More specifically, the cell's colspan does not get adjusted when another cell gets hidden.
To replicate the problem:
The issue is observable when AJAX is enabled using asp:UpdatePanel, telerik:RadAjaxPanel, or telerik:RadAjaxManager because the event handlers are not added back to elements upon an AJAX postback. When no AJAX panels are used, the entire document is rendered, and all handlers are attached to elements again.
Code
<asp:UpdatePanel runat="server">
<ContentTemplate>
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" runat="server"></telerik:RadAutoCompleteBox>
<asp:Button ID="Button1" runat="server" Text="Post Back" />
</ContentTemplate>
</asp:UpdatePanel>
<script>
$(document).on('click', function (e) {
console.log('Document clicked');
});
</script>
The bottom part of the last page of the PDF document stays hidden. If dragged with the mouse, the Page will move and can be viewed, releasing the mouse will scroll it back as a result, hiding the bottom part.
Issue can also be observed with the following demo: https://demos.telerik.com/aspnet-ajax/pdfviewer/overview/defaultcs.aspx
Hi Telerik Team,
I have encountered a strange issue while working with RadEditor in Track Changes mode, specifically when editing tables. When deleting content inside a table cell, the entire cell behaves abnormally—either disappearing visually or causing layout disruptions. I have attached a screenshot to illustrate the issue.
Steps to Reproduce the Issue:
Upon inserting a new record after filtering on the Grid with No records, the exception "No property or field 'Name' exists in type 'DataRowView'" is thrown.
Steps to reproduce:
Code to replicate the issue:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" AllowFilteringByColumn="true"
OnNeedDataSource="RadGrid1_NeedDataSource" OnInsertCommand="RadGrid1_InsertCommand">
<MasterTableView CommandItemDisplay="Top" DataKeyNames="ID">
<Columns>
<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
<telerik:GridButtonColumn CommandName="Delete"></telerik:GridButtonColumn>
<telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="ID" ReadOnly="true"
CurrentFilterFunction="Contains" AutoPostBackOnFilter="true" />
<telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name"
AutoPostBackOnFilter="false" />
<telerik:GridBoundColumn DataField="Category" HeaderText="Category" UniqueName="Category" DataType="System.String"
CurrentFilterFunction="Contains" AutoPostBackOnFilter="true" />
<telerik:GridBoundColumn DataField="Price" HeaderText="Price" UniqueName="Price"
CurrentFilterFunction="Contains" AutoPostBackOnFilter="true" DataFormatString="{0:C}" />
</Columns>
<EditFormSettings InsertCaption="Add New Item" />
</MasterTableView>
</telerik:RadGrid>
C#
private const string DataTableSessionKey = "RadGridDataTable";
private DataTable SessionDataSource
{
get
{
DataTable dt = Session[DataTableSessionKey] as DataTable;
if (dt == null || !IsPostBack)
{
// Create an empty DataTable with schema defined
dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
Session[DataTableSessionKey] = dt;
}
return dt;
}
}
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
(sender as RadGrid).DataSource = SessionDataSource;
}
protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e)
{
GridEditableItem insertItem = (GridEditableItem) e.Item;
Hashtable newValues = new Hashtable();
insertItem.ExtractValues(newValues);
DataRow findLastItem = SessionDataSource.Select("ID=MAX(ID)").FirstOrDefault();
newValues["ID"] = findLastItem != null ? (int) findLastItem["ID"] + 1 : 0;
DataRow rowToInsert = SessionDataSource.NewRow();
foreach (DictionaryEntry entry in newValues)
{
rowToInsert[entry.Key.ToString()] = entry.Value ?? DBNull.Value;
}
SessionDataSource.Rows.Add(rowToInsert);
}
When the JAWS screen reader is used alongside the Grid with enabled keyboard navigation, using Alt + Up/Down arrow doesn't work as intended, most noticeably trying to use Alt + UpArrow doesn't move the focus to the previous row.
This behavior can be observer on the Keyboard navigation demo as well
Steps to reproduce
When the zip is opened with SecureZip, it reports 9 errors. When extracted with any zip utility, there are duplicate files in the zip. I think the files should be in folders within the zip. Attached is one such file. I've tried this several times with different base themes.
For RadGrid, after setting EnableKeyboardShortcuts to false, I find the Up/Down keys are also disabled. However, according to your online document below, the Up/Down keys shouldn't be disabled in this case.
According the Keyboard Support online demo, these buttons should not get disabled:
"The grid also features an additional property ClientSettings -> KeyboardNavigationSettings -> EnableKeyboardShortcuts which when set to false will disable all keyboard navigation shortcuts except for the Up/Down and Page Up/Page Down keys."
.hasChanges() results in records flagged for Delete to not actually get deleted when .saveChanges() executes.
I found the same behaviour on a LiveDemo example that checks .hasChanges(): Grid - Binding to Telerik ClientDataSource
Steps to reproduce:
Using the set_value() method of the DatePicker's Input, set "2024-05-08" (the date format is dd/MM/yyyy), the month and day are misplaced and the control gets the wrong date of 05/08/2024.
When the day is larger than 12, the correct date is received. For example, '2024-05-14' will update the control correctly and we see the control with 14/05/2024.
An unwanted second captcha is being created and the UI does not update when the second captcha is created. There are no other Ajax calls on the page that are causing this issue.
We have extended the BaseCaptchaCachingProvider and are now saving the image in the database. After making this change, the image is no longer grayed out; however, validation only succeeds after every three attempts. When we check the database, we notice that a second key with a different image has been added before the user clicks the submit. On the user interface, we still see the old image.