Repro steps:
- use the editor below and the attached Word document in the archive at the end
- copy the document content in the editor
- clean the word formatting
- select some of the content (e.g., one paragraph)
- click the format stripper dropdown and choose Strip Span Elements
- run get_html(true) in the console
Expected: spans are stripped only from the selected content
Actual: nothing is stripped. Changing to HTML mode and back to Design fixes this, so you should not use that to check the HTML
<telerik:RadEditor RenderMode="Lightweight" runat="server" ID="RadEditor1">
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="FormatStripper" />
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
WORKAROUNDS:
For the majority of cases you can set up automatic stripping of span elements when pasting from Word, so your users do not need to do that themselves. Here is an example:
<telerik:RadEditor RenderMode="Lightweight" runat="server" ID="RadEditor1"
StripFormattingOptions="ConvertWordLists, MSWordNoMargins, Span">
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="FormatStripper" />
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
You can read more on how stripping MS Word content works in the following demo, and play around with the various options to see what works best for your case: http://demos.telerik.com/aspnet-ajax/editor/examples/cleaningwordformatting/defaultcs.aspx and in the following documentation article: https://docs.telerik.com/devtools/aspnet-ajax/controls/editor/managing-content/pasting-content/clean-ms-word-formatting
There are also two possible code workarounds so advanced users can retain more control over the HTML without switching to the HTML mode themselves.
The second is likely to be a tad faster with large content, but the first is likely to produce better user experience.
1) this changes the mode to HTML and back to design with each paste so that the stripping tool can work with the selection
<telerik:RadEditor RenderMode="Lightweight" runat="server" ID="RadEditor1"
OnClientCommandExecuted="OnClientCommandExecuted">
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="FormatStripper" />
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
<script>
function OnClientCommandExecuted(sender, args) {
if (args.get_commandName() == "Paste") {
sender.set_mode(2);
setTimeout(function () {
sender.set_mode(1);
}, 50);
}
}
</script>
2) this one is a workaround that allows the stripping tool to work without mode change, but it will not operate with the selection but with all the content
<telerik:RadEditor RenderMode="Lightweight" runat="server" ID="RadEditor1"
OnClientCommandExecuting="OnClientCommandExecuting">
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="FormatStripper" />
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
<script>
function OnClientCommandExecuting(sender, args) {
if (args.get_commandName() == "StripSpan") {
sender.set_html(sender.get_html(true));
}
}
</script>
Issue on Tabstrip tabs. I am working on ADA 508 Compliance issues. The screen reader (NVDA) is not reading the text on the tabs. I have tried applying the options highlighted below but nothing is working
Code to replicate the issue:
<telerik:RadTabStrip RenderMode="Lightweight" ID="RadTabStrip1" runat="server" SelectedIndex="0">
<KeyboardNavigationSettings CommandKey="Alt" FocusKey="M" />
<Tabs>
<telerik:RadTab Text="Examples">
</telerik:RadTab>
<telerik:RadTab Text="Configurator">
</telerik:RadTab>
<telerik:RadTab Text="Quick Start">
</telerik:RadTab>
<telerik:RadTab Text="Help">
</telerik:RadTab>
<telerik:RadTab Text="Purchase">
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
I have enabled aria settings for the treeview control, but when I am trying to navigate via key board it announces some thing like {level} {selected value/text} {checked/not checked} or {selected value/text} {checked/not checked} {level},
I don't want {checked/not checked}, to be announced.
We have a WebForms application with Telerik AJAX components which we have successfully upgraded using the wizard for years. Starting with product version 2025.4.1210 and persisting in the latest version, 2025.4.1321, the upgrade wizard fails with the following error message.
The Telerik extension to VS is up to date, and it doesn't seem to help to run this in VS 2022.
An error occurred while running the wizard.
Error executing custom action Telerik.Web.UI.VSX.Actions.MultiProjectUpdateReferencesAction: System.InvalidOperationException: There is an error in XML document (3, 2). ---> System.Xml.XmlException: Name cannot begin with the '<' character, hexadecimal value 0x3C. Line 3, position 2.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ParseQName(Boolean isQName, Int32 startOffset, Int32& colonPos)
at System.Xml.XmlTextReaderImpl.ParseElement()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlReader.ReadStartElement()
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSolutionDistributionDefinition.Read2_SolutionDistributionDefinition(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderSolutionDistributionDefinition.Read3_Distribution()
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
at Telerik.VSX.Helpers.Serializer`1.Deserialize(String filePath)
at Telerik.VSX.SolutionManagement.SolutionDistributionOperator.<>c__DisplayClass11_0.<DeserializeSolutionDistributionDefinition>b__0()
at Telerik.VSX.SolutionManagement.SolutionDistributionOperator.HandleUnauthorizedAccessException(Action action)
at Telerik.VSX.SolutionManagement.SolutionDistributionOperator.DeserializeSolutionDistributionDefinition(String distributionFilePath)
at Telerik.VSX.SolutionManagement.SolutionDistributionOperator.<>c__DisplayClass10_0.<CreateSolutionDistribution>b__0()
at Telerik.VSX.SolutionManagement.SolutionDistributionOperator.HandleUnauthorizedAccessException(Action action)
at Telerik.VSX.SolutionManagement.SolutionDistributionOperator.CreateSolutionDistribution(String distributionFilePath, DistributionInfo distributionInfo)
at Telerik.VSX.SolutionManagement.SolutionDistributionsContext.LoadSolutionDistributionDefinitions(DistributionInfo distributionInfo)
at Telerik.VSX.Actions.MultiProjectUpdateReferencesActionBase`1.CreateSolutionDistributionsContext(WizardContext context)
at Telerik.VSX.Actions.MultiProjectUpdateReferencesActionBase`1.Execute(WizardContext wizardContext, IPropertyDataDictionary arguments)
at Telerik.VSX.WizardEngine.ActionManager.ExecActions()It seems the element somehow considmes the scrolling/touch action and the grid does not scroll unless you hit the gap where the custom element does not reach.
A workaround is to enforce overflow: auto to the scrollable element of the grid. A sample is attached below.
div.rgDataDiv {
overflow: auto !important;
}
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);
}Set up to reproduce:
<telerik:RadToggleButton ID="RadToggleButton1" runat="server" Text="RadToggleButton">
<ConfirmSettings ConfirmText="Sure?" />
<ToggleStates>
<telerik:ButtonToggleState Text="state1">
<Icon Url="supervisorIcon.png" />
</telerik:ButtonToggleState>
<telerik:ButtonToggleState Text="state2">
<Icon Url="ownerIcon.jfif" />
</telerik:ButtonToggleState>
</ToggleStates>
</telerik:RadToggleButton>
The color picker doesn't looks good when zooming in the browser. Try zooming to 120% and run your demo: http://demos.telerik.com/aspnet-ajax/colorpicker/examples/overview/defaultcs.aspx You need to reload the page after zooming! The Web colors wraps, and the HSB/HSV tabs also wraps a lot! Also see this thread: http://www.telerik.com/forums/looks-really-bad-when-zooming
When the body has no margin, and a Rating with Precision set to Half or Exact cannot apply the hovered styles to the ratings. This happens whenever the Rating component is inside a ListView.
The below code demonstrates the issue:
<telerik:RadListView ID="lvRatings" runat="server" DataKeyNames="ID">
<ItemTemplate>
<div>
<asp:Label ID="lblRating" runat="server"><%# Eval("Value")%></asp:Label>
<telerik:RadRating ID="rrRating" runat="server" RenderMode="Lightweight" Precision="Item" /> <%--this is the one that works--%>
<telerik:RadRating ID="RadRating1" runat="server" RenderMode="Lightweight" Precision="Half" /> <%--this is the one that does not work when body margin is set to 0--%>
</div>
</ItemTemplate>
</telerik:RadListView>
<telerik:RadListView ID="lvTextCriteria" runat="server" DataKeyNames="ID">
<ItemTemplate>
<div>
<asp:Label ID="lblCriteria" runat="server"><%# Eval("Value")%></asp:Label><sub> (max 1000 chars)</sub>
<asp:TextBox ID="txtCriteria" runat="server" TextMode="MultiLine" Rows="5" Width="100%" MaxLength="1000"></asp:TextBox>
</div>
</ItemTemplate>
</telerik:RadListView>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindRatings();
BindTextCriteria();
}
}
private void BindRatings()
{
var dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Value", typeof(string));
dt.Rows.Add(1, "Overall Experience");
dt.Rows.Add(2, "Quality of Service");
dt.Rows.Add(3, "Value for Money");
dt.Rows.Add(4, "Staff Friendliness");
dt.Rows.Add(4, "Staff Friendliness");
dt.Rows.Add(4, "Staff Friendliness");
lvRatings.DataSource = dt;
lvRatings.DataBind();
}
private void BindTextCriteria()
{
var dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Value", typeof(string));
dt.Rows.Add(1, "What did you like most about your experience?");
dt.Rows.Add(2, "What could we improve?");
dt.Rows.Add(3, "Any additional comments or suggestions?");
dt.Rows.Add(3, "Any additional comments or suggestions?");
dt.Rows.Add(3, "Any additional comments or suggestions?");
dt.Rows.Add(3, "Any additional comments or suggestions?");
dt.Rows.Add(3, "Any additional comments or suggestions?");
lvTextCriteria.DataSource = dt;
lvTextCriteria.DataBind();
}
To reproduce the issue, load the page, scroll down and try to hover over the Rating.
AXE Errors:
Setup to reproduce:
<telerik:RadTabStrip runat="server" ID="RadTabStrip1" MultiPageID="RadMultiPage1" EnableAriaSupport="true" SelectedIndex="0">
<AriaSettings Label="TabStrip" />
<KeyboardNavigationSettings CommandKey="Alt" FocusKey="M" />
<Tabs>
<telerik:RadTab Text="Tab 1">
</telerik:RadTab>
<telerik:RadTab Text="Tab 2">
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
<telerik:RadMultiPage runat="server" ID="RadMultiPage1" SelectedIndex="0" EnableAriaSupport="true">
<telerik:RadPageView ID="RadPageView1" runat="server" ContentUrl="content.aspx">
</telerik:RadPageView>
<telerik:RadPageView ID="RadPageView2" runat="server" ContentUrl="content.aspx">
</telerik:RadPageView>
</telerik:RadMultiPage>Simple reproducible is attached to illustrate the problem.
A workaround may be replacing RadButtons that invokes such postbacks with regular buttons and using a form decorator
Alternatively, you can simply disable the handler URL encryption
You can also put the following in the global.asax file to prevent the version from rendering on the page markup
protected void Application_BeginRequest(object sender, EventArgs e)
{
System.Web.HttpContext.Current.Items["_!TelerikVersionStampRendered"] = true;
}
or you can add the same line in a global Page_Load handler (e.g., in a base page class or in the master page your project uses)
Repro:
<telerik:RadStyleSheetManager runat="server"></telerik:RadStyleSheetManager>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button Text="Postback" OnClick="Unnamed_Click" runat="server" />
<telerik:RadButton runat="server" Visible="false" ID="RadButton1" Text="Telerik button" AutoPostBack="true" />
</ContentTemplate>
</asp:UpdatePanel>protected void Unnamed_Click(object sender, EventArgs e)
{
RadButton1.Visible = true;
}<add key="Telerik.ScriptManager.EnableHandlerEncryption" value="true" />
Workaround:
Temporarily set EnableHandlerEncryption to false or do not use a StyleSheetManager
<add key="Telerik.ScriptManager.EnableHandlerEncryption" value="false" />
When inserting video in Telerik Editor, radEditor by default inserts it using <embed>.
This element is not supported by Edge. Many modern browsers now support/recommend to use of the <video> tag.
So, that it will render video in most of Chromium browsers out there.
Please update the RadODataSource to support the newest version of OData. The syntax for filtering (among other things) has changed, so I am unable to implement this control with my chosen technology stack until it is updated. Thanks!
After upgrade from
<package id="Telerik.Licensing" version="1.6.16" targetFramework="net472" />
<package id="Telerik.UI.for.AspNet.Ajax.Net462" version="2025.3.825" targetFramework="net472" />
to
<package id="Telerik.Licensing" version="1.6.40" targetFramework="net472" />
<package id="Telerik.UI.for.AspNet.Ajax.Net462" version="2026.1.225" targetFramework="net472" />
we started experiencing the following error:
1. Add editor with ToolbarMode="RibbonBarShowOnFocus", no code-behind is required
<telerik:RadEditor ID="Editor" runat="server" Width="100%"
ToolbarMode="RibbonBarShowOnFocus">
</telerik:RadEditor>2. Open page, editor is empty and "Design" tab is active
3. Click on "Html" tab. Important: don't click on the editor content area while "Design" tab is active!
4. Paste some html, e.g.
<p>Your third Quarter Dining Rewards are Ready!</p>
5. Click to "Design" tab. Content is not rendered, editor is broken.
6. Find error in console
ScriptResource.axd?d=SIX1nT3k5ctYiH_Z5iBDXSZnshOXvXkzvSku5HLBqZlwfCmxfuwQE-bsvfCtuJcU8Kf5mMmqIz4_-haUfplj_Y2fBjNYHTB6sDwvO7dqA9dlR0fcUTx4578VpqHDjGrfk4WQ4Qs5nyG4zIAFDPwYjQ2&t=7fbf35ab:1 Uncaught TypeError: Cannot read properties of null (reading 'commonAncestorContainer')
at Object.getState (ScriptResource.axd?d=SIX1nT3k5ctYiH_Z5iBDXSZnshOXvXkzvSku5HLBqZlwfCmxfuwQE-bsvfCtuJcU8Kf5mMmqIz4_-haUfplj_Y2fBjNYHTB6sDwvO7dqA9dlR0fcUTx4578VpqHDjGrfk4WQ4Qs5nyG4zIAFDPwYjQ2&t=7fbf35ab:1:143451)
at Object.getToolState (ScriptResource.axd?d=SIX1nT3k5ctYiH_Z5iBDXSZnshOXvXkzvSku5HLBqZlwfCmxfuwQE-bsvfCtuJcU8Kf5mMmqIz4_-haUfplj_Y2fBjNYHTB6sDwvO7dqA9dlR0fcUTx4578VpqHDjGrfk4WQ4Qs5nyG4zIAFDPwYjQ2&t=7fbf35ab:2:7097)
at Object.setRibbonBarToolState (ScriptResource.axd?d=SIX1nT3k5ctYiH_Z5iBDXSZnshOXvXkzvSku5HLBqZlwfCmxfuwQE-bsvfCtuJcU8Kf5mMmqIz4_-haUfplj_Y2fBjNYHTB6sDwvO7dqA9dlR0fcUTx4578VpqHDjGrfk4WQ4Qs5nyG4zIAFDPwYjQ2&t=7fbf35ab:3:124809)
at Object._onEditorSelectionChange (ScriptResource.axd?d=SIX1nT3k5ctYiH_Z5iBDXSZnshOXvXkzvSku5HLBqZlwfCmxfuwQE-bsvfCtuJcU8Kf5mMmqIz4_-haUfplj_Y2fBjNYHTB6sDwvO7dqA9dlR0fcUTx4578VpqHDjGrfk4WQ4Qs5nyG4zIAFDPwYjQ2&t=7fbf35ab:3:124488)
at Array.<anonymous> (MsAjaxJs?v=D6VN0fHlwFSIWjbVzi6mZyE9Ls-4LNrSSYVGRU46XF81:1:2148)
at MsAjaxJs?v=D6VN0fHlwFSIWjbVzi6mZyE9Ls-4LNrSSYVGRU46XF81:1:50368
at Object.raiseEvent (ScriptResource.axd?d=TDVjdgRbdvNAY3tnbizUcIjfDUXiq5ixpnBN0VcDALLSiZ3CMr6-87hfvIaN_0cz2j3vISyRnNQUUXuS5a7lBoLr1EhUzo3XC7p-5gq6HdUFDfDXoZF6FnTKoxdUmGE70&t=7fbf35ab:3:34795)
at Function.callBaseMethod (MsAjaxJs?v=D6VN0fHlwFSIWjbVzi6mZyE9Ls-4LNrSSYVGRU46XF81:1:8931)
at Object.raiseEvent (ScriptResource.axd?d=SIX1nT3k5ctYiH_Z5iBDXSZnshOXvXkzvSku5HLBqZlwfCmxfuwQE-bsvfCtuJcU8Kf5mMmqIz4_-haUfplj_Y2fBjNYHTB6sDwvO7dqA9dlR0fcUTx4578VpqHDjGrfk4WQ4Qs5nyG4zIAFDPwYjQ2&t=7fbf35ab:1:326487)
at Object.set_html (ScriptResource.axd?d=SIX1nT3k5ctYiH_Z5iBDXSZnshOXvXkzvSku5HLBqZlwfCmxfuwQE-bsvfCtuJcU8Kf5mMmqIz4_-haUfplj_Y2fBjNYHTB6sDwvO7dqA9dlR0fcUTx4578VpqHDjGrfk4WQ4Qs5nyG4zIAFDPwYjQ2&t=7fbf35ab:2:26992)
This is a production issue so any quick fixes/workarounds will be greatly appreciated.
When loading a page configured with RadScriptManager, RadStyleSheetManager, and RadWindowManager using CDN and combined resources, a JavaScript runtime error occurs:
<telerik:RadScriptManager runat="server" ID="RadScriptManager1"
AsyncPostBackTimeout="500" EnablePageMethods="true"
EnableScriptCombine="true" LoadScriptsBeforeUI="true"
EnableCdn="true" CdnSettings-TelerikCdn="Enabled" CdnSettings-CombinedResource="Enabled"
EnableScriptLocalization="true"
EnableScriptGlobalization="true" />
<telerik:RadStyleSheetManager ID="RadStyleSheetManager1"
runat="server"
EnableStyleSheetCombine="true"
CdnSettings-TelerikCdn="Enabled" CdnSettings-CombinedResource="Enabled" />
<telerik:RadWindowManager runat="server" ID="radWindowManager" Style="z-index: 7001;" RenderMode="Lightweight" />
<telerik:RadWindow runat="server" ID="RadWindowRecommendUs" EnableViewState="false"
Behaviors="Close" VisibleOnPageLoad="false"
Width="300px" Height="590px"
InitialBehaviors="Pin" VisibleStatusbar="false" VisibleTitlebar="true" Modal="true" ReloadOnShow="true" Overlay="false" />
<telerik:RadWindow ID="RadWindowFacebookLoginCompleteDetails" runat="server"
Behaviors="Reload" Modal="true" VisibleStatusbar="false"
Width="720" Height="750"
IconUrl="/SITE/COMPONENTS/facebook/fb_icon_16X16.png"
/>
<telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server" Style="width: 100%; min-height: 250px;" /> The predefined RadWindowManager dialog templates do not fully expose the required accessibility attributes.
Two issues are present in the default predefined dialog markup: