Telerik Forums
UI for ASP.NET AJAX Forum
0 answers
24 views

Hello everyone,

Here are the highlights of the new online resources we published this week from 05 Nov 2025 to 10 Nov 2025:

Article: https://www.telerik.com/products/aspnet-ajax/documentation/knowledge-base/fix-telerik-ui-aspnet-ajax-no-license-error
Summary: This KB explains that the error 'No license found for Telerik UI for ASP.NET AJAX' occurs when Telerik.Licensing cannot detect a valid Telerik license file or Script key (Evidence attribute), which differs based on whether the project is a Web Application or a Web Site. It provides step-by-step remediation paths for both project types, covering NuGet-based licensing, manual Script key integration, and correct placement of the telerik-license.txt or Evidence attribute. Following the appropriate steps and rebuilding the project resolves the licensing validation failure.

Feel free to check it out and share your thoughts!

The Telerik Team

---------------------------------------------------------------------------------------------------------------------------------------------------------

Hello everyone,

Here are the highlights of the new online resources we published this week from 29 Oct 2025 to 05 Nov 2025:

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/overview
Summary: Use the SpeechToTextButton control in Telerik UI for ASP.NET AJAX to capture microphone input and insert recognized text into a specified input or textarea using the browser’s Web Speech API. The overview shows how to configure the target element and recognition settings (language/culture, interim/continuous results), lists HTTPS/permission and browser support requirements (e.g., Chrome/Edge), and details the server- and client-side API and events (start, result, end, error) so you can manage the recognition lifecycle in JavaScript.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/appearance
Summary: This article shows you how to style the ASP.NET AJAX SpeechToTextButton using built‑in skins and custom CSS, including setting the Skin property, toggling EnableEmbeddedSkins/EnableEmbeddedBaseStylesheet, and applying a CssClass. It also covers choosing a RenderMode (Classic or Lightweight) and identifying the control’s HTML/CSS hooks so you can create a custom skin and adjust size, colors, and visual states.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/getting-started
Summary: This guide shows you how to add and configure the SpeechToTextButton in Telerik UI for ASP.NET AJAX to capture microphone input and insert recognized text into a target input (e.g., ASP.NET TextBox or RadTextBox). You’ll register the control, add the markup, associate it with the target input, configure recognition language/options, and wire client-side events for start/stop, results, and errors. It also covers browser and security requirements for the Web Speech API (HTTPS origin and microphone permissions) and provides a minimal working example to validate your setup.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/client-side-programming/enums
Summary: This article lists the client-side enums for the ASP.NET AJAX SpeechToTextButton control and explains the meaning of each value and where it’s used in the control’s JavaScript API. Use these enums in your event handlers and custom logic to check recognition state, handle errors and permission changes, and avoid magic strings or numbers. The enums are available on the client side (Telerik.Web.UI) for consistent integration with SpeechToTextButton.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/server-side-programming/enums
Summary: This article documents the server-side enumerations used by the Telerik UI for ASP.NET AJAX SpeechToTextButton. It lists each enum and its members, explains where they apply in the control’s API, and how they affect behavior and appearance so you can set them correctly in markup or code-behind (C#/VB.NET). Use it as a reference when configuring the control via server-side code.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/client-side-programming/events
Summary: Handle the ASP.NET AJAX SpeechToTextButton client-side events in JavaScript to manage recognition lifecycle, receive result notifications, and handle errors. The article shows how to subscribe via the control’s OnClient* properties or programmatically through the client-side object’s add/remove event methods, and details the event arguments you’ll use to access recognition data and status. Use these hooks to capture interim and final transcripts, update UI state, and control when recognition starts, stops, or is canceled from your application code.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/client-side-programming/overview
Summary: Learn how to get the RadSpeechToTextButton client-side instance in ASP.NET AJAX and use its JavaScript API to start/stop speech recognition, handle results and errors, and update input elements. The article summarizes the control’s client-side events, methods, and properties so you can wire up event handlers and control recognition from JavaScript.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/server-side-programming/overview
Summary: Learn how to use the RadSpeechToTextButton server-side in Telerik UI for ASP.NET AJAX: its server-side properties, methods, and events, and how they interact with the ASP.NET Web Forms page lifecycle. Configure the control in code-behind, handle postbacks, and access the recognized text (e.g., via the target input or control state) for validation and processing.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/knowledge-base/asyncupload-display-pdf-preview-file-selection
Summary: Learn how to show a client-side PDF preview immediately after file selection in ASP.NET AJAX using RadAsyncUpload, without uploading to the server. You handle OnClientFileSelected, get the selected File from the underlying input, validate it as a PDF, and render it in an iframe/object or RadPdfViewer via URL.createObjectURL or FileReader, with notes on multiple files and revoking object URLs.

Article: https://www.telerik.com/products/aspnet-ajax/documentation/controls/speechtotextbutton/client-side-programming/properties
Summary: This article documents the client-side properties of the Telerik ASP.NET AJAX SpeechToTextButton and shows how to access them through its JavaScript object ($find) using the standard get_/set_ pattern. You will learn how to read and update behavior, state, and configuration at runtime (for example, enable/disable, target control, and recognition state) so you can integrate speech-to-text into your forms without postbacks.

Feel free to check them out and share your thoughts!

The Telerik Team

Rumen
Telerik team
 updated question on 10 Nov 2025
44 answers
9.2K+ views

This sticky thread lists known issues and breaking changes introduced in the UI for ASP.NET AJAX releases.


Q3 2011 (Version number: 2011.3.1115)

Problem: When adding items to OData-enabled controls (RadMenu, RadTreeView, RadListBox, RadComboBox) through design time erroneous markup is applied to the control:

<telerik:RadListBox runat="server" ID="RadListBox1">
    <Items>
    </Items>
    <WebServiceSettings>
        <ODataSettings InitialContainerName="">
        </ODataSettings>
    </WebServiceSettings>
</telerik:RadListBox>

Please note the added ODataSettings section. It will cause JavaScript errors on the page.

Solution: Remove the ODataSetting section and the issue will vanish. The problem is also fixed in the Q3 SP1 release, version number 2011.3.1305
Vasko
Telerik team
 updated question on 20 Oct 2025
1 answer
790 views

When I run my project I'm getting this error

Could not load file or assembly 'Telerik.Web.UI' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

In my web.config I checked that the version in the web.config is the same as the version I'm using in references

<assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2020.2.617.45" newVersion="2020.2.617.45" />

 

Vessy
Telerik team
 answered on 22 Oct 2021
0 answers
3 views

Is there any way to get a list of all items from a RadMultiSelect?

I've found the solution of get it from the datasource, but I'm remodeling exiting code that is replacing RadListBoxes and it would be simpler if I could read the items from RadMultiSelect.Items.

Bernie

 

Bernie
Top achievements
Rank 1
Iron
Iron
 asked on 11 Nov 2025
1 answer
9 views

If the user selects the highlighted text individually (by double clicking their mouse and highlighting the words) and paste it into an Editor, all is good.

However, if the user triple clicks to highlight the entire sentence and then paste that into an Editor, this is what shows up in the HTML view:

<div>
<div id="ctl00_Main_Content_ctl00_Main_Content_RadMultiPagePanel">
<div id="ctl00_Main_Content_RadMultiPage">
<div id="Main_Content_SummaryPage">
<div>
<div>Please load claims from QNXT Production 09/12/2025 into Test Reports.</div>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<div>
<div id="ctl00_Main_Content_ctl00_Main_Content_ddlQuickLinksPanel">
<div id="ctl00_Main_Content_ddlQuickLinks" tabindex="0">&nbsp;</div>
</div>
</div>
</div>
</div>
It's like the "copy" action is taking some of the pieces of the page the text is on.

Is there a way to prevent this?

I still want the user to be able to copy/paste images into the Editor, but this is causing problems. In the users minds they are simply copying and pasting text.
Rumen
Telerik team
 answered on 10 Nov 2025
1 answer
11 views

Using the following client script to change the selected value of the slider. However, it does not seem that the "item" or slider "set_value()" function is doing anything. The selected value nor the position of the of the slider changes on the client.

Thank you in advance for any help resolving this issue.

Client Script:

var dateValue = dayjs(selectedDate).format("M/D/YYYY");
var slider = $find("<%=RadSlider1.ClientID%>");
var items = slider.get_items();
for (var i = 0; i < items.length; i++) {
	 var item = items[i];
	 var sliderDate = item.get_value();
	 if (sliderDate == dateValue) {
		 item.set_value(dateValue);
		slider.set_value(dateValue);
		slider.repaint();
		break;
		}
}

Slider Markup

<telerik:RadSlider ID="RadSlider1" runat="server" Skin="Bootstrap" Width="98%" Height="50" Orientation="Horizontal" CssClass="ItemsSlider" OnClientValueChanged="Slider_ValueChanged" AnimationDuration="400" EnableServerSideRendering="true" TrackPosition="BottomRight" ItemType="Item" ThumbsInteractionMode="Push" DataSourceID="dsWeekDays">
	<ItemBinding TextField="WeekdayName" ValueField="WeekdayDate" ToolTipField="WeekdayDate"  />
</telerik:RadSlider>

<asp:SqlDataSource ID="dsWeekDays" runat="server" ConnectionString="<%$ ConnectionStrings:CHPCOMSDB %>" SelectCommand="SELECT WeekdayDate = FORMAT(Weekdaydate, 'M/d/yyyy'), WeekdayName FROM dbo.fx_getLastFiveWeekdays() ORDER BY WeekdayDate" SelectCommandType="Text"></asp:SqlDataSource>

Attila Antal
Telerik team
 answered on 06 Nov 2025
1 answer
14 views
Hi, I am facing an issue where the Document Manager pop-up window that appears when attaching documents disappears from the right-hand file settings menu when zooming out of the page in any browser.

The issue is 
also reproducible here: Official RadEditor By Telerik

Please see the recording for more information:- https://jam.dev/c/de662891-5a44-4419-8738-616672fbb7f8

  Before:-

 


After:-


Rumen
Telerik team
 answered on 03 Nov 2025
4 answers
25 views

Hello Telerik Team,

Our customers identified a few accessibility concerns related to the RadEditor Image Manager and Document Manager popup windows:

  1. Keyboard Focus on Popup Activation
    When a user tabs to the Image Manager plugin and presses Enter, the popup window opens. However, keyboard focus does not automatically move into the popup. Instead, the user must press the Tab key again to shift focus manually.
    ➤ To meet accessibility standards, focus should move directly into the modal or popup when it appears. This ensures that keyboard and screen reader users can interact with the dialog immediately without navigating through background content.
  2. Missing Dialog Roles and Labels
    The dialog containers ( see below ) currently lack appropriate accessibility roles.
    ➤ Each dialog container should include role="dialog".
    ➤ If the dialog has a visible title, it should also include aria-labelledby referencing the ID of that title element. This allows assistive technologies to announce the dialog context clearly.

Is there any way to fix these two issues?

Thanks,

Lan

 

Rumen
Telerik team
 answered on 31 Oct 2025
1 answer
20 views

Hi,

I need to restore the expanded state of a RadTreeList after a redirect. I am storing the expanded items in Session before the redirect. However, server-side expansion only expands the root, not the child items.

Can someone share a JavaScript example or approach to fully expand all previously expanded nodes by the user after a redirect using the stored session data?

If your approach works in Server Side, I will use it on my solution

Thanks team!

This is an example using server side, but it expands only the first root element (not sure why)

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Telerik.Web.UI;

namespace SysMgmt.Groups
{
    public partial class GroupMaintenanceServer : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                RadTreeList1.NeedDataSource += RadTreeList1_NeedDataSource;
            }
        }

        protected void RadTreeList1_NeedDataSource(object sender, TreeListNeedDataSourceEventArgs e)
        {
            RadTreeList1.DataSource = GetData();
        }

        // ✅ Guardar los nodos expandidos antes del render
        protected void Page_PreRender(object sender, EventArgs e)
        {
            var expandedItems = RadTreeList1.Items
                .Where(i => i.Expanded)
                .Select(i => (int)i.GetDataKeyValue("ID"))
                .ToList();

            Session["ExpandedNodes"] = expandedItems;
        }

        protected void RadTreeList1_DataBound(object sender, EventArgs e)
        {
            if (Session["ExpandedNodes"] is List<int> expanded)
            {
                foreach (TreeListDataItem item in RadTreeList1.Items)
                {
                    int id = (int)item.GetDataKeyValue("ID");
                    if (expanded.Contains(id))
                        item.Expanded = true;
                }
            }
        }

        protected void RadTreeList1_ItemCommand(object sender, TreeListCommandEventArgs e)
        {
            if (e.CommandName == "EditItem" && e.Item is TreeListDataItem dataItem)
            {
                int id = (int)dataItem.GetDataKeyValue("ID");
                Response.Redirect($"EditPage.aspx?id={id}");
            }
        }

       
        private DataTable GetData()
        {
            DataTable table = new DataTable();
            table.Columns.Add("ID", typeof(int));
            table.Columns.Add("ParentID", typeof(int));
            table.Columns.Add("Text", typeof(string));
            table.Columns.Add("Value", typeof(string));

            // Root nodes
            table.Rows.Add(1, DBNull.Value, "Root 1", "A");
            table.Rows.Add(2, DBNull.Value, "Root 2", "B");

            // Children of Root 1
            table.Rows.Add(3, 1, "Child 1.1", "A1");
            table.Rows.Add(4, 1, "Child 1.2", "A2");

            // Children of Root 2
            table.Rows.Add(5, 2, "Child 2.1", "B1");
            table.Rows.Add(6, 2, "Child 2.2", "B2");

            // Sub-child
            table.Rows.Add(7, 3, "SubChild 1.1.1", "A1a");

            return table;
        }
    }
}
Leslie
Top achievements
Rank 1
Iron
 answered on 30 Oct 2025
1 answer
22 views

Hi,

I need to restore the expanded state of a RadTreeList after a redirect. I am storing the expanded items in Session before the redirect. However, server-side expansion only expands the root, not the child items.

Can someone share a JavaScript example or approach to fully expand all previously expanded nodes after a redirect using the stored session data? Or maybe provide a better example on Server Side

Thanks!


This is the example I was using on server side, but it only expands the root element


using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using Telerik.Web.UI;

namespace Momentum.Mapp.WebApp.SysMgmt.Groups
{
    public partial class GroupMaintenanceServer : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                RadTreeList1.NeedDataSource += RadTreeList1_NeedDataSource;
            }
        }

        protected void RadTreeList1_NeedDataSource(object sender, TreeListNeedDataSourceEventArgs e)
        {
            RadTreeList1.DataSource = GetData();
        }

        protected void Page_PreRender(object sender, EventArgs e)
        {
            var expandedItems = RadTreeList1.Items
                .Where(i => i.Expanded)
                .Select(i => (int)i.GetDataKeyValue("ID"))
                .ToList();

            Session["ExpandedNodes"] = expandedItems;
        }

        protected void RadTreeList1_DataBound(object sender, EventArgs e)
        {
            if (Session["ExpandedNodes"] is List<int> expanded)
            {
                foreach (TreeListDataItem item in RadTreeList1.Items)
                {
                    int id = (int)item.GetDataKeyValue("ID");
                    if (expanded.Contains(id))
                        item.Expanded = true;
                }
            }
        }

        protected void RadTreeList1_ItemCommand(object sender, TreeListCommandEventArgs e)
        {
            if (e.CommandName == "EditItem" && e.Item is TreeListDataItem dataItem)
            {
                int id = (int)dataItem.GetDataKeyValue("ID");
                Response.Redirect($"EditPage.aspx?id={id}");
            }
        }

        // Ejemplo de datos simples
        private DataTable GetData()
        {
            var dt = new DataTable();
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("ParentID", typeof(int));
            dt.Columns.Add("Name", typeof(string));

            dt.Rows.Add(1, DBNull.Value, "Continents");
            dt.Rows.Add(2, 1, "Asia");
            dt.Rows.Add(3, 1, "Europe");
            dt.Rows.Add(4, DBNull.Value, "Oceans");
            dt.Rows.Add(5, 4, "Pacific");
            dt.Rows.Add(6, 4, "Atlantic");

            return dt;
        }

     }
}

Vasko
Telerik team
 answered on 29 Oct 2025
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Iron
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Iron
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?