Summary When a RadPane has Scrolling="Y" (or X/Both) and also has BorderWidth, BorderStyle, BorderColor set (either directly on the pane or via the parent RadSplitter's PanesBorderSize), the pane's inner scrollbar does not render/work correctly. The space reserved for the scrollbar remains in the layout, but the scrollbar itself is missing or non-functional, effectively making the pane's content unscrollable.
Steps to Reproduce
Expected behavior The pane's scrollbar should render correctly and remain functional regardless of BorderWidth/BorderStyle/BorderColor/PanesBorderSize settings.
Actual behavior Scrollbar space is reserved but the scrollbar is missing/non-functional when a border is applied to the pane.
Telerik UI for ASP.NTE AJAX nuget package adds ChartImage handler configs to Web.Config (system.web/httpHandlers and system.webServer/handlers) even though it does not support RadChart any more.
Also it seems to mess system.webServer/handlers configuration by adding remove actions for other Telerik handlers AFTER add actions.
system.web/httpHandlers before:
<httpHandlers> <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" /> <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" /> <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" /> <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" /> </httpHandlers>
system.web/httpHandlers after:
<httpHandlers> <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" /> <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" /> <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" /> <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" /> <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false" /></httpHandlers>
system.webServer/handlers before:
<handlers> <add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" /> <add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" /> <add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" /> <add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" /> </handlers>
system.webServer/handlers after:
<handlers> <add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" /> <add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" /> <add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" /> <add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" /> <remove name="ChartImage_axd" /><remove name="Telerik_Web_UI_SpellCheckHandler_axd" /><remove name="Telerik_Web_UI_DialogHandler_aspx" /><remove name="Telerik_RadUploadProgressHandler_ashx" /><remove name="Telerik_Web_UI_WebResource_axd" /><add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode" /></handlers>
Regression introduced in: 2025.4.1111
When RadEditor is in HTML mode, calling get_html() without parameters modifies self-closing tags in the returned content.
According to the documented API behavior, the RadEditor client filters should modify the returned content only when the isFiltered argument is set to true. However, the content is currently passed through browser DOM serialization even when filtering is not requested. This normalizes HTML void elements and removes the XHTML self-closing slash.
Steps to reproduce
<img alt="" src="image.png" />
Actual result
The returned markup is modified and the self-closing slash is removed:
<img alt="" src="image.png">
Expected result
When filtering is not requested, the content entered in HTML mode should be returned without filter-related DOM serialization:
<img alt="" src="image.png" />
Calling editor.get_html(true) may modify the returned content according to the enabled RadEditor client filters.
Impact
Applications that store, compare, validate, or further process XHTML-compatible markup may receive content different from the source entered by the user. This can affect integrations that rely on self-closing tag syntax.
Hi Progress Telerik Team,
Our security team has reported a Content Security Policy issue related to inline scripts in Progress Telerik UI for ASP.NET AJAX. Could you please add nonce support for inline scripts so we can resolve this issue in a compliant way?
Please let us know if you need any additional details from our side.
Thank you,
Hira Kewlani
After upgrading to 2026.2.708, RadAsyncUpload file uploads fail with HTTP 403 Forbidden originating from the new CSRF validation (AsyncUploadHandler.ValidateCsrfToken). The handler returns an HTML error response.
The failure occurs only in our multi-host (load-balanced) environment. In multihost environment as well Issue is inconsistent. The exact same build works correctly on a single-node local/dev machine.
Refer support ticket raise for the Issue to get more detail.
RadAsyncUpload fails with HTTP 403 (ValidateCsrfToken) in multi-node/web-farm environment after upgrade to 2026.2.708 | View Ticket | Your Account
I'm using a RadTab and one of the RadPageViews starts with an RadAsyncUpload-Control. When I use arrow keys to select this tab and try to use the Tab-Key to focus the next element (the RadAsyncUpload in this case) nothing happens. If any other control (like a textbox) is placed above my upload control there is no problem focusing it.
You can see this in the attached Demoproject when using arrow keys to select to RpvUpload.
There is significant latency when a user has many images in a list or dropdown list, particularly those with sub-choices that also have images. Because of this, we tried implementing design-time templates to allow lazy loading of images for RadComboBox. While implementing a solution is possible, it was much more complicated than expected.
We have previuisly raised a feature request for simular controls that was fixed (Thanks for that) but our topp prioority component is The combobox. see Allow lazy loading of images with design-time templates for ListBox and ComboBox
During the discussion a few questions was rasied from telerik:
Currently, the ComboBox has the Load on Demand functionality which focuses on loading items as needed, but it does not specifically address lazy loading of images inside the templates. Before proceeding further, I’d like to confirm your current setup to suggest the best approach:
Reasons (Hope it makes sense)
Only server-side databinding (with both controls).
We are using both ItemTemplate with custom images (where we then control lazy loading ourselves) and ImageUrl where we lose this possibility and have issues. We also dynamically load custom controls (ITemplate) in a few places.
Hello Telerik Team, I'm implementing HeaderContext filtering with checkbox lists on a RadGrid in a legacy ASP.NET WebForms application. Current Setup: - FilterType="HeaderContext" - FilterCheckListEnableLoadOnDemand="true" - OnFilterCheckListItemsRequested event populates checkboxes from session data Issue: Users experience 500-2000ms delay when opening filter menus (AJAX callback to server). In our production environment with slow network and high concurrent users, this creates poor user experience. Questions: 1. Is there a way to pre-populate checkbox lists during grid initialization (avoiding AJAX callback)? 2. Can we use OnItemCreated to populate checkbox lists with FilterCheckListEnableLoadOnDemand="false"? If so, what's the correct approach? 3. Is there a client-side caching mechanism for checkbox list items? 4. What's the recommended pattern for large datasets (1000+ rows) with multiple filterable columns? Environment: - Telerik.Web.UI version:v4.0.30319- .NET Framework: 4.8 - Browser: Chrome, IE11 - Grid has ~10 columns with 5 using checkbox filters Any guidance on performance optimization would be greatly appreciated! Thank you, Anurag pandey
Attached my grid code. Most columns are removed for readability
<telerik:RadGrid ID="grdChanges" runat="server" Width="1140"
skin="WebBlue" style="margin-top:13px; margin-right:13px; outline: 0 !important;"
ShowFooter="false" AllowSorting="false">
<ClientSettings>
<Scrolling AllowScroll="True" ScrollHeight="487px" UseStaticHeaders="true" />
</ClientSettings>
<MasterTableView GroupLoadMode="Client" AutoGenerateColumns="False" HeaderStyle-Font-Bold="true">
<HeaderStyle CssClass="InnerHeaderStyle"/>
<ItemStyle CssClass="InnerItemStyle"/>
<AlternatingItemStyle CssClass="InnerAlernatingItemStyle"/>
<CommandItemStyle CssClass="CommandHeaderStyle" />
<ColumnGroups>
<telerik:GridColumnGroup Name="Passenger Trips" HeaderText="Passenger Trips" HeaderStyle-HorizontalAlign="Center"/>
<telerik:GridColumnGroup Name="Ton Trips" HeaderText="Ton Trips" HeaderStyle-HorizontalAlign="Center"/>
<telerik:GridColumnGroup Name="Miles Per Trip" HeaderText="Miles Per Trip" HeaderStyle-HorizontalAlign="Center"/>
<telerik:GridColumnGroup Name="Miles Per Hour" HeaderText="Miles Per Hour" HeaderStyle-HorizontalAlign="Center"/>
</ColumnGroups>
<Columns>
<telerik:GridNumericColumn DataField="MilesPerHour_Proj" HeaderText="Project"
ColumnGroupName ="Miles Per Hour"
DataFormatString="{0:N1}" DecimalDigits="0"
HeaderStyle-HorizontalAlign="Center"
HeaderStyle-Width="60px" ItemStyle-BackColor="White"
ItemStyle-HorizontalAlign="Right" AllowRounding="true" />
<telerik:GridNumericColumn DataField="MilesPerHour_Base" HeaderText="Base"
ColumnGroupName ="Miles Per Hour"
DataFormatString="{0:N1}" DecimalDigits="0"
HeaderStyle-HorizontalAlign="Center"
HeaderStyle-Width="60px" ItemStyle-BackColor="White"
ItemStyle-HorizontalAlign="Right" AllowRounding="true" />
<telerik:GridNumericColumn DataField="MilesPerHourChange" HeaderText="Change"
ColumnGroupName ="Miles Per Hour"
DataFormatString="{0:N1}" DecimalDigits="0"
HeaderStyle-HorizontalAlign="Center"
HeaderStyle-Width="60px" ItemStyle-BackColor="White"
ItemStyle-HorizontalAlign="Right" AllowRounding="true" />
</Columns>
<NoRecordsTemplate>
<div style="padding: 5px">
No records available.
</div>
</NoRecordsTemplate>
</MasterTableView>
<FilterMenu EnableTheming="True">
<CollapseAnimation Duration="200" Type="OutQuint" />
</FilterMenu>
</telerik:RadGrid>
Hello,
ChatGPT recommended "Turn off Telerik’s “old” ARIA settings (they are overly strict and often invalid):"
i removed it and it worked. WTH?
What i supposed to do now? I added these settings in all our products
<telerik:RadGrid ID="grdImpacts" runat="server" EnableAriaSupport="true"
The problem is that when you click the buttons, the RadDateRangePicker is filled with the start of 2025-06-01 and the end of 2025-06-30. Then, when you click the button again, a change should occur in the RadDateRangePicker: start of 2025-07-01 and end of 2025-07-31.
1 step => correct
2 step => incorrect
Result
The first time you click the button, it returns the start date to 06/01/2025 and the end date to 06/30/2025 (this is correct). Clicking it again returns the start date to 06/30/2025 and the end date to 07/31/2025 (this is incorrect).
Work around
- Local page
js code fixed
const datepicker = $find('<%= radDateRangePicker2.ClientID %>');
datepicker.set_rangeSelectionStartDate(null);
datepicker.set_rangeSelectionEndDate(null);
- Global fixed All controls
C# in extension control
public bool EnableDateResetting
{
get => ViewState["EnableDateResetting"] as bool? ?? false;
set => ViewState["EnableDateResetting"] = value;
}
public eDateRangePicker() : base()
{
Load += EDateRangePicker_Load;
}
private void EDateRangePicker_Load(object sender, EventArgs e)
{
if (EnableDateResetting)
{
RegisterDateResettingScript();
}
}
private void RegisterDateResettingScript()
{
string script = $@"
Sys.Application.add_load(function() {{
const picker = $find('{ClientID}');
if (picker) {{
const origStart = picker.set_rangeSelectionStartDate;
const origEnd = picker.set_rangeSelectionEndDate;
picker.set_rangeSelectionStartDate = function(date) {{
if (date !== null && !this._isResetting) {{
const currentStart = this.get_rangeSelectionStartDate();
const currentEnd = this.get_rangeSelectionEndDate();
if (currentStart || currentEnd) {{
this._isResetting = true;
origStart.call(this, null);
origEnd.call(this, null);
this._isResetting = false;
}}
}}
return origStart.call(this, date);
}};
picker.set_rangeSelectionEndDate = function(date) {{
return origEnd.call(this, date);
}};
}}
}});
";
ScriptManager.RegisterStartupScript(this, GetType(), $"DateResetting_{ClientID}", script, true);
}When using client-side code to filter my Grid, the "BETWEEN" filter does not work well when filtering DateTime values where the time is after 12:00 AM.
i.e., filtering the dates between 9/11/2025 and 9/12/2025 does not include 9/12/2025 at 12:01 AM or any date where the time is after 12:00 AM.
Additionally, when passing datetime values to the filter function, the time component is dropped afterward.
var filter = "9/11/2025,12:00:00,AM 9/12/2025,11:59:59,PM"
tableView.filter(columnName, filter, "Between");
<FilterTemplate>
<telerik:RadLabel runat="server" AssociatedControlID="FromOrderDatePicker" Text="From"></telerik:RadLabel>
<telerik:RadDatePicker RenderMode="Lightweight" ID="FromOrderDatePicker" runat="server" Width="140px" ClientEvents-OnDateSelected="FromDateSelected"
MinDate="07-04-1996" MaxDate="05-06-1998" FocusedDate="07-04-1996" DbSelectedDate='<%# startDate %>' />
<telerik:RadLabel runat="server" AssociatedControlID="ToOrderDatePicker" Text="to" Style="padding-left: 5px;"></telerik:RadLabel>
<telerik:RadDatePicker RenderMode="Lightweight" ID="ToOrderDatePicker" runat="server" Width="140px" ClientEvents-OnDateSelected="ToDateSelected"
MinDate="07-04-1996" MaxDate="05-06-1998" FocusedDate="05-06-1998" DbSelectedDate='<%# endDate %>' />
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<script type="text/javascript">
function FromDateSelected(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
var ToPicker = $find('<%# ((GridItem)Container).FindControl("ToOrderDatePicker").ClientID %>');
var fromDate = FormatSelectedDate(sender) + ",12:00:00,AM";
var toDate = FormatSelectedDate(ToPicker) + ",11:59:59,PM";
tableView.filter("OrderDate", fromDate + " " + toDate, "Between");
}
function ToDateSelected(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
var FromPicker = $find('<%# ((GridItem)Container).FindControl("FromOrderDatePicker").ClientID %>');
var fromDate = FormatSelectedDate(FromPicker);
var toDate = FormatSelectedDate(sender);
tableView.filter("OrderDate", fromDate + " " + toDate, "Between");
}
function FormatSelectedDate(picker) {
var date = picker.get_selectedDate();
var dateInput = picker.get_dateInput();
var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());
return formattedDate;
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
For more details, you can take Ticket 1702122 as a reference.
I recently upgraded the Telerik version from 2025.1.416 to 2025.3.825, and started getting this NullReferenceException during debugging.
I noticed I get the error when debugging RadGrid with the Skin property.
The Box Plot Chart throws the following errors when used:
RadHtmlChart.js:1 Uncaught ReferenceError: series is not defined Uncaught (in promise) ReferenceError: series is not defined
Hello Progress team,
we're using the HtmlChart and RadialGauge components of your Telerik for AJAX suite and are encountering some inconsistencies between the two.
To be able to use the exportable SVGs of those components server-side, we've extended your classes and added two asp:HiddenFields each, so we can post the SVG and the dimensions back to the server for further processing. (Setting the values is handled in a button OnClientClick JavaScript function, that's irrelevant to this thread.)
As of 2019, when we first introduced the respective feature in our software, the code looked like this:
public class ExportableRadHtmlChart : RadHtmlChart, INamingContainer
{
private HiddenField _svgData = new HiddenField();
private HiddenField _svgDimensions = new HiddenField();
public ExportableRadHtmlChart()
{
_svgData.ID = "SVGData";
_svgDimensions.ID = "SVGDimensions";
}
protected override void OnInit(EventArgs e)
{
Controls.Add(_svgData);
Controls.Add(_svgDimensions);
base.OnInit(e);
}
protected override void Render(HtmlTextWriter writer)
{
writer.RenderBeginTag(HtmlTextWriterTag.Div);
base.Render(writer);
_svgData.RenderControl(writer);
_svgDimensions.RenderControl(writer);
writer.RenderEndTag();
}
}and
public class ExportableRadRadialGauge : RadRadialGauge, INamingContainer
{
private HiddenField _svgData = new HiddenField();
private HiddenField _svgDimensions = new HiddenField();
public ExportableRadRadialGauge()
{
_svgData.ID = "SVGData";
_svgDimensions.ID = "SVGDimensions";
}
protected override void OnInit(EventArgs e)
{
Controls.Add(_svgData);
Controls.Add(_svgDimensions);
base.OnInit(e);
}
protected override void Render(HtmlTextWriter writer)
{
writer.RenderBeginTag(HtmlTextWriterTag.Div);
base.Render(writer);
_svgData.RenderControl(writer);
_svgDimensions.RenderControl(writer);
writer.RenderEndTag();
}
}With this code, we've been running the Telerik product version 2023.1.323.45.
Now, we've updated to Telerik product version 2025.1.416.462 and are experiencing the following inconsistencies:
As I'm unsure of the "Theme name", I've put "ControlDefault". But I don't think that should matter too much. If it does, I'll try to find the correct value.
Kind regards,
Matthias
We were looking to use Telerik’s RadEditor control to provide MS Word like editing provision but lacks some features of MS Word especially Header & Footer options which will be repeated in every page, as the RadEditor control does not support paging. Are we doing it correctly? Is there an option where paging is supported and header and footer will come across pages? Are there any other products that support MS Word editor functionality?