Unplanned
Last Updated: 26 Oct 2026 08:41 by Christopher

Component: RadFilter ( RadFilterExpressionConverter ,  RadFilterExpressionSerializer )
Affected: 2026.2.708 and later, where the JSON serializer replaced the Newtonsoft one


Description:
 RadFilterExpressionConverter.IsValidFieldName  ( RadFilterExpressionConverter.cs:180 ) allows only letters, digits,  _  and  . . Any other  FieldName  is silently replaced with  null  during  LoadSettings() . SaveSettings()  does not validate, so a bracket-qualified name saves but can't be loaded.

Steps to reproduce

1. Create a RadFilter with a RadFilterTextFieldEditor where FieldName = "[dataBooking].[TotalPaid]" .
2. Add a  RadFilterLessThanFilterExpression<string>  on that field with the value  "1000" .
3. Call  SaveSettings() . The JSON contains  "FieldName":"[dataBooking].[TotalPaid]" .
4. On a new  RadFilter  with the same editor, call  LoadSettings(saved) .

Sample console application code snippet to reproduce the issue:

using System;
using System.Collections;
using Telerik.Web.UI;

namespace RadFilterBracketFieldNameRepro
{
    class Program
    {
        private const string BracketedFieldName = "[dataBooking].[TotalPaid]";

        static void Main()
        {
            Console.WriteLine("Telerik.Web.UI version: " + typeof(RadFilter).Assembly.GetName().Version);
            Console.WriteLine("FieldName under test:   " + BracketedFieldName);
            Console.WriteLine();

            // 1) Build a filter with one expression against a bracket-qualified field name.
            //    This format is not unusual -- it's what you get for any field name that needs
            //    to be schema/table-qualified. Telerik's own RadFilterSqlExpressionEvaluator
            //    produces the same "[table].[column]" shape when generating SQL.
            RadFilter source = new RadFilter();
            source.FieldEditors.Add(new RadFilterTextFieldEditor { FieldName = BracketedFieldName });

            RadFilterLessThanFilterExpression<string> expression = new RadFilterLessThanFilterExpression<string>(BracketedFieldName);
            ((IRadFilterValueExpression)expression).SetValues(new ArrayList { "1000" });
            source.RootGroup.AddExpression(expression);

            // 2) Persist it the normal way.
            string savedState = source.SaveSettings();
            Console.WriteLine("SaveSettings() output (base64):");
            Console.WriteLine(savedState);
            Console.WriteLine();
            Console.WriteLine("Decoded JSON:");
            Console.WriteLine(System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(savedState)));
            Console.WriteLine();

            // 3) Simulate the next request restoring that saved state into a fresh RadFilter,
            //    exactly like a report/page reload would.
            RadFilter restored = new RadFilter();
            restored.FieldEditors.Add(new RadFilterTextFieldEditor { FieldName = BracketedFieldName });

            try
            {
                restored.LoadSettings(savedState);

                RadFilterLessThanFilterExpression<string> restoredExpression = (RadFilterLessThanFilterExpression<string>)restored.RootGroup.Expressions[0];

                Console.WriteLine("FieldName after LoadSettings(): '" + restoredExpression.FieldName + "'");
                Console.WriteLine(restoredExpression.FieldName == BracketedFieldName
                    ? "OK -- FieldName round-tripped correctly."
                    : "BUG REPRODUCED -- FieldName was lost during LoadSettings().");
            }
            catch (Exception ex)
            {
                Console.WriteLine("BUG REPRODUCED -- LoadSettings() threw:");
                Console.WriteLine(ex);
            }

            Console.WriteLine();
            Console.WriteLine("Press Enter to exit...");
            Console.ReadLine();
        }
    }
}

Expected: The expression is restored with its original FieldName.

Actual:

System.ArgumentException: Parameter cannot be null or empty.
Parameter name: fieldName
  RadFilterDataFieldEditorCollection.FindEditorForFieldName
  RadFilterSingleExpressionItem.SetupFunctionInterface
  RadFilter.CreateFilterItems / CreateChildControls
  RadFilter.RecreateControl
  RadFilter.LoadSettings
Reproduced on the current version 2026.3.608.0.

Unplanned
Last Updated: 16 Oct 2026 12:32 by ADMIN
Currently the the ImageEditor (and the Editor) are looking for standard .ascx files with the names of its dialogs and it is not optimized for a scenario in which these dialogs are pre-compiled.
Unplanned
Last Updated: 28 Sep 2026 07:35 by ADMIN

Context / scenario

We run a large ASP.NET AJAX application with a fully custom, self-maintained CSS theme — we do not use any of Telerik's built-in skins. For this kind of setup we need complete control over every stylesheet that gets loaded into the page, both for consistency of our design system and to avoid unexpected CSS side effects or class-name collisions with resources we don't manage.

Issue

We found that fonticons.css is automatically and unconditionally injected by the Lightweight rendering path used by the controls (e.g. RadButton, RadTextBox, and other controls using the Lightweight render mode). This injection happens regardless of the EnableEmbeddedSkins and EnableEmbeddedBaseStylesheet settings, which normally let developers opt out of Telerik's embedded/base CSS resources. In other words, even with both of those settings disabled and no skin applied, fonticons.css is still loaded — there is currently no supported way to prevent it.

We raised this with Telerik support and it was confirmed internally: the fonticons.css injection is currently hard-wired into the Lightweight rendering path and is not gated by any existing configuration option.

Why this matters

  • It breaks the expectation that EnableEmbeddedSkins / EnableEmbeddedBaseStylesheet = "nothing gets injected automatically" for teams running a fully custom theme.
  • It adds an extra, unaccounted-for HTTP resource / set of CSS rules (font-face declarations and generic icon base classes) that our theme did not ask for and cannot easily audit or version alongside the rest of our stylesheet.
  • Teams with strict content-security / asset-inventory requirements (e.g. wanting every loaded CSS file to be explicitly declared and controlled) currently have no clean way to achieve that with Telerik controls in Lightweight mode.
  • The only current workaround (intercepting or modifying Telerik's internal resource registration) is explicitly discouraged by Telerik support itself, since that internal logic can change between versions and is not a supported extension point.

Feature request

Introduce a supported opt-out for the automatic fonticons.css injection in the Lightweight rendering path — for example, a new setting such as EnableFontIcons (page/control or global web.config level, consistent with how EnableEmbeddedSkins / EnableEmbeddedBaseStylesheet are already exposed) that lets developers explicitly disable this injection when they provide their own icon/font handling.

We understand from Telerik support that this is not a small, isolated change — it requires auditing and refactoring how style resources are declared and loaded across the whole control set (including some legacy resource-registration code) before a dedicated opt-out setting can be safely introduced, and that this carries a real risk of regressions if rushed. We're not expecting a quick fix; we're submitting this as a tracked feature request, as recommended by Telerik support, so it can be prioritized and voted on by other customers with the same fully-custom-theme use case.

Suggested acceptance criteria

  • A documented way (config setting and/or API) to disable automatic fonticons.css injection specifically in Lightweight rendering mode.
  • Behavior consistent with EnableEmbeddedSkins / EnableEmbeddedBaseStylesheet: when disabled, no font-icon CSS is emitted by the framework, leaving the developer fully responsible for providing equivalent styles if needed.
  • No behavior change for existing applications that don't set the new opt-out (backward compatible by default).
Unplanned
Last Updated: 10 Sep 2026 09:36 by ADMIN
Created by: Márcio
Comments: 1
Category: UI for ASP.NET AJAX
Type: Feature Request
1
Currently, the editor does not support dragging and dropping content with change control enabled. Thinking about a user who uses the editor a lot during their day, it would be an interesting feature considering the usability of the tool, in a scenario where it is important to have change control.

No Ticket 1659890 is explained a problem that occurs with our customers.
Unplanned
Last Updated: 04 Sep 2026 20:32 by Mark

------------------- 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.

Unplanned
Last Updated: 02 Sep 2026 12:13 by Christopher
Created by: Christopher
Comments: 0
Category: PersistenceFramework
Type: Feature Request
0

RadPivotGrid persisted states do not restore saved filter values or apply the filters to the dataset.

The issue is reproducible on the Telerik demo site and also affects states newly saved with the affected versions. No runtime errors are observed.

The behavior worked in 2026.2.519.

Expected: Loading a persisted state restores the saved filters and applies them to the PivotGrid.

Actual: The state loads, but the saved filters are not restored or applied.

This appears to be a regression related to recent changes to the persisted state storage/restoration mechanism.

Unplanned
Last Updated: 09 Jun 2026 07:33 by Yuriy Rogach

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).

Root cause (from RadCalendarScript.js, CalendarView.ApplyViewTable)
The navigation animation detaches the current day-grid table, parks the old and new tables inside a temporary scroll container, and animates `scrollLeft`. Thenew table is re-attached to the DOM only when the animation loop finishes:

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.


Workaround

Setting `EnableNavigationAnimation="false"` avoids the animation code path entirely and fully resolves the issue.

 

Unplanned
Last Updated: 23 Dec 2025 10:31 by Devops

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:

  1. Create a grid and bind it to data
  2. Set the EnableHeaderContextMenu to true
  3. Load the page
  4. Right-click on a column's header to bring up the contextmenu and click "Group By"
  5. Right click on a column's header to bring up the contextmenu again and show/hide a few columns from the "Columns" menu.
Unplanned
Last Updated: 26 Nov 2025 11:31 by ADMIN
Created by: Yossi
Comments: 1
Category: UI for ASP.NET AJAX
Type: Feature Request
0

Hello,

We see the integration of AI through the AI​​Prompt component within the ASP.Net Core Editor, which enables a smarter and more efficient content creation experience, and we love it. We would be very happy if we could have the same integration for the Ajax Editor as well.

Thanks in advance
Yossi
Unplanned
Last Updated: 08 Sep 2025 15:09 by ADMIN
Created by: Emil
Comments: 1
Category: FileExplorer
Type: Feature Request
1

add LastModified column to the RadFileExplorer  default control.   developing a custom handler seems a bit excessive IMHO to view this important information.

Thanks,

emil

Unplanned
Last Updated: 29 Aug 2025 13:54 by colin
To replicate the issue, group the Grid by a field which has records with colons and without. Group headers containing colons will not have the rgGroupHeaderText class assigned, thus missing the Header styling.
Unplanned
Last Updated: 04 Aug 2025 14:38 by ADMIN
The panelbar item you click on selects the first root item of the panelbar, then changes to the actual selected item. This can be observed in the Custom Attributes demo.
Unplanned
Last Updated: 04 Aug 2025 14:33 by ADMIN
ADMIN
Created by: Peter Milchev
Comments: 0
Category: ToolBar
Type: Bug Report
0

			
Unplanned
Last Updated: 01 Aug 2025 13:28 by ADMIN
Created by: Alan
Comments: 0
Category: UI for ASP.NET AJAX
Type: Feature Request
0
Unplanned
Last Updated: 01 Aug 2025 13:27 by ADMIN
Created by: Mauro Pederzolli
Comments: 0
Category: UI for ASP.NET AJAX
Type: Feature Request
2

Hi,

I was looking around to develop a web app that allows streaming camera view in order to take pictures, showing the previews, letting cancel/retake or transfer (upload/save) them.

I started from the input control, that makes more or less what I need, but start a video streaming, letting the user simply to capture frame from it to save pictures, is more user friendly and simplify a lot the workflow.

So I started to work with video element, canvas and FloatingActionsButton, hitting against many issues, starting from the different browsers compatibilities.

I was just wondering if Telerik would never implement such a camera + gallery component, in order to take and manage pictures easily and cross platform.

Thank you, kind regards

 

Unplanned
Last Updated: 01 Aug 2025 13:26 by ADMIN
Created by: Dan Avni
Comments: 0
Category: UI for ASP.NET AJAX
Type: Feature Request
2
Please create a Bootstrap 5 skin so we can use Bootstrap 5 along with Ajax components on the same page and colors/spacings and everything else would look the same. Current Bootstrap 3 skin is limiting to use Bootstrap 3 on other page elements
Unplanned
Last Updated: 01 Aug 2025 13:26 by ADMIN

Yes, ASP.NET Webforms is outdated, but it's still around, and I think many developers are looking at moving to a newer and more modern technology. But in some cases - including mine - it's not really possible to refactor an application that has grown for 20 years overnight. The only thing I can do is put a lot of energy into changing the CSS of the controls. Which is not always easy.

I really appreciate the functionality of the Telerik controls and think it's a shame that they don't get a visual and functional update.

In this specific case, it is about the Datepicker Control, which has a different behavior than the more modern version under .NET Core. For example, the month or year selection opens in a new DIV popup. In the more modern control, this is solved in a more elegant and modern way.

I think that this list of controls that need a “front-end pimp” can certainly be extended.

Thank you!

Unplanned
Last Updated: 01 Aug 2025 13:26 by ADMIN
Created by: IT Dev
Comments: 0
Category: UI for ASP.NET AJAX
Type: Feature Request
0

Based on Ticket ID 1683806  it was suggested to add this here.  It should be fairly straight forward and would resolve issues that I have.

My Suggestion:

Why can you not just add the clientEvents to the RadEditor1.FileExplorerSettings

Something like RadEditor1.FileExplorerSettings.ClientEvents.OnClientFileOpen="somefunction"

 

Your response.

Thank you for your suggestion to add client events directly to RadEditor1.FileExplorerSettings. It's a thoughtful idea that could indeed enhance client-side flexibility and streamline interactions.

At present, this feature is not available. However, we encourage you to submit it as a feature request through our public feedback portal, where our product team actively reviews community input for potential inclusion in future updates.

 

Also, please see my ticket for a bug in the ImageManager using th URL to return the item instead of the OriginalPath.  This makes my custom content provider not feasible.

 

 

Thanks!

Unplanned
Last Updated: 16 Jul 2025 13:34 by ADMIN
From the widget/page > select the middle bottom cell (notice it has no styling) > Table properties > Cell Properties > Select the middle bottom cell again > More Cell Styling > Border > Notice that the top row design is inherited > Is this expected? 

 video link:- https://jam.dev/c/1516e16f-1f7c-4e89-8b19-368edabf5703 

I have observed that when we're in the widget > selecting a cell from the table > clicking on Cell Properties > The top row design is not inherited. 
Unplanned
Last Updated: 16 Jul 2025 13:16 by ADMIN
Following  the bug report Cell Properties - Preview only shows top-left cell styling when applying changes to multiple top-row cells > when we navigate the mouse up and down, in the background, we can see only the top left cell with the border we configured. (while initially we selected the top three) > But if now, in the preview page, we will choose the top three > OK >We will see the top three cells showing the design we configured. 

video link:- https://jam.dev/c/ba52bff1-7459-44d6-a647-d3eb5cea07f3. 
1 2 3 4 5 6