Completed
Last Updated: 28 Feb 2026 05:53 by ADMIN
Release 2026 Q2

The DropDownTree does not show its selected value if the data is set asynchronously.

Possible workarounds include:

  • Set the DropDownTree Value after the Data is set.
  • Render the DropDownTree component conditionally after the Data is set.

Test page:

DropDownTreeValue1: @DropDownTreeValue1
<br />
DropDownTreeValue2: @DropDownTreeValue2

<br />

Bug:
<TelerikDropDownTree Data="@DropDownTreeData"
                     @bind-Value="@DropDownTreeValue1"
                     @bind-ExpandedItems="@DropDownTreeExpandedItems"
                     Width="300px">
</TelerikDropDownTree>

Workaround:
<TelerikDropDownTree Data="@DropDownTreeData"
                     @bind-Value="@DropDownTreeValue2"
                     @bind-ExpandedItems="@DropDownTreeExpandedItems"
                     Width="300px">
</TelerikDropDownTree>

@* Render DropDownTree after setting Data *@
@if (DropDownTreeData is not null)
{
    <span>Workaround:</span>
    <TelerikDropDownTree Data="@DropDownTreeData"
                        @bind-Value="@DropDownTreeValue1"
                        @bind-ExpandedItems="@DropDownTreeExpandedItems"
                        Width="300px">
    </TelerikDropDownTree>
}

@code {
    private List<TreeItem>? DropDownTreeData { get; set; }

    private int DropDownTreeValue1 { get; set; }
    private int DropDownTreeValue2 { get; set; }

    private IEnumerable<object> DropDownTreeExpandedItems { get; set; } = new List<TreeItem>();

    protected override async Task OnInitializedAsync()
    {
        DropDownTreeValue1 = 3;
        await Task.Delay(1000);
        DropDownTreeData = LoadFlatData();

        // Set DropDownTree Value after setting Data
        DropDownTreeValue2 = 3;

        DropDownTreeExpandedItems = DropDownTreeData.Where(x => x.ParentId is null && x.HasChildren);
    }

    private int TreeLevels { get; set; } = 3;
    private int RootItems { get; set; } = 2;
    private int ItemsPerLevel { get; set; } = 2;
    private int IdCounter { get; set; }

    private List<TreeItem> LoadFlatData()
    {
        List<TreeItem> items = new List<TreeItem>();

        PopulateChildren(items, null, 1);

        return items;
    }

    private void PopulateChildren(List<TreeItem> items, int? parentId, int level)
    {
        var itemCount = level == 1 ? RootItems : ItemsPerLevel;
        for (int i = 1; i <= itemCount; i++)
        {
            var itemId = ++IdCounter;
            items.Add(new TreeItem()
            {
                Id = itemId,
                ParentId = parentId,
                HasChildren = level < TreeLevels,
                Text = $"Level {level} Item {i} Id {itemId}",
                Value = itemId
            });

            if (level < TreeLevels)
            {
                PopulateChildren(items, itemId, level + 1);
            }
        }
    }

    public class TreeItem
    {
        public int Id { get; set; }
        public int? ParentId { get; set; }
        public bool HasChildren { get; set; }
        public string Text { get; set; } = string.Empty;
        public int Value { get; set; }
    }
}

Unplanned
Last Updated: 27 Feb 2026 14:20 by Alex
If you focus an item, you can resize it with "Ctrl+Arrow keys". If you for example press "Ctrl+Arrow up", the items vertical size shrinks. If you do that repeatedly, it becomes less than 0. If you want to increase the size again, you first have to undo all that negativity, before the items grows again. Ideally, the code should only reduce "ColSpan" and "RowSpan" if its current value is greater than 1.
Unplanned
Last Updated: 27 Feb 2026 13:19 by ADMIN
The parameters "Resizable" and "Reorderable" let you control whether tiles can be resized and reordered. These work when using the mouse, but once you turn on keyboard navigation via setting the parameter "Navigable" to "true", you are able to resize and reorder the tiles using "Ctrl"/"Shift" + "Arrow keys", regardless of the parameter values for "Resizable" and "Reorderable".
Unplanned
Last Updated: 27 Feb 2026 13:19 by ADMIN
The EventCallbacks "OnResize" and "OnReorder" only get invoked when a user is performing the appropriate actions with the mouse, not when using keyboard navigation.
Completed
Last Updated: 27 Feb 2026 12:50 by ADMIN
Created by: Alex
Comments: 1
Category: TabStrip
Type: Bug Report
2

  1. Activating the second tab leads to its header having the focus (correct).
  2. Using the tab key, the focus changes to the second tabs content (correct).
  3. Using "Shift + Tab", the focus changes back to the header row, but to the first tab header (incorrect, the second tab header should be focused).
  4. Using the right arrow key, the focus changes to the third tab header and this tab gets activated (actually correct, but confusing considering the previous point).

The problem is caused by the tab index of the tab headers not being updated properly. The first one seems to have 0 at all times, while all others stay at -1. Instead, the active tab header should have tab index 0, while all others get -1.

Unplanned
Last Updated: 27 Feb 2026 12:49 by ADMIN
Created by: Alex
Comments: 2
Category: Window
Type: Feature Request
1

We are using a "TelerikWindow" that does neither contain the "WindowAction" "Minimize" nor "Maximize", since we do not want the user to do so. It is still possible, however, to minimize / maximize the window using the keyboard shortcuts described here: https://demos.telerik.com/blazor-ui/window/keyboard-navigation

 

We came up with a hack to work around the current behaivor:

https://blazorrepl.telerik.com/QSOVullp326u6uJW12

Unplanned
Last Updated: 27 Feb 2026 12:24 by ADMIN

Hello Telerik team,

I recently noticed a bug in the TelerikComboBox component. The TelerikDropDownList component is affected in the same way, however. I created the following REPL to demonstrate this: https://blazorrepl.telerik.com/wKamcLaN08Q5Ntu600

If these two components have data and you select an entry, the focus gets reset to the component and you can use the Tab key to navigate to the next element:

If there is no data and you click on the dropdown, it closes, but the focus is lost. Since the components are used in a modal window here, the user can even escape the focus trap this way:

Regards,
Alex

Unplanned
Last Updated: 27 Feb 2026 09:42 by ADMIN
Created by: Manuel
Comments: 0
Category: FileSelect
Type: Feature Request
1

Similar to "AllowedExtensions", please add a "DisallowedExtensions". My filing system requires every type of file to be allowed except certain executables and I don't know of any workaround. 

Thank you in advance.

I added this as a forum feature request and I ended up here! I hope I'm on the right path.

 

Unplanned
Last Updated: 27 Feb 2026 08:57 by ADMIN
Created by: Alexander
Comments: 2
Category: Diagram
Type: Feature Request
4

Current limitation: When DiagramShapeDefaultsEditable.Connect="true", users can draw connections between shapes, but there is no event fired when a new connection is created by the user.
Requested feature: Add OnConnectionCreated event that:

  • Fires when user creates a new connection by dragging from one shape to another
  • Returns event arguments containing:
    • FromShapeId — the source shape identifier
    • ToShapeId — the target shape identifier
    • Connection — reference to the newly created connection object (or its properties)
  • Allows developers to intercept, validate, or customize the connection before it's finalized

Use case: We need to capture user-created connections to persist them to database, validate business rules (e.g., prevent circular dependencies), and set connection properties (type, label, color) based on context.

Completed
Last Updated: 27 Feb 2026 08:36 by ADMIN
Focus is lost after selecting an item from the dropdown in Firefox, but only when using the mouse. When selecting an item via the keyboard, the focus remains on the input element as expected.
Pending Review
Last Updated: 26 Feb 2026 12:52 by Andreas
Created by: Andreas
Comments: 0
Category: Editor
Type: Bug Report
1

When a table row does not have any cells, there might be lots of script errors when hovering the empty row with the mouse.

The error is the following:
Uncaught RangeError: Not a table node: doc

    get http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    get http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    decorations http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    decorations http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Fa http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    someProp http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Fa http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    updateStateInner http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    updateState http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    dispatch http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Bu http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    mousemove http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    mousemove http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Vo http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    someProp http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Vo http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    i http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Jo http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    someProp http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Jo http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Wa http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    Wa http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    initEditor http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    initialize http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    d http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    initComponent http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    initEditor http://localhost:5045/_content/Telerik.UI.for.Blazor/js/telerik-blazor.kh4xf5u23f.js:1
    processJSCall http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    beginInvokeJSFromDotNet http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    _invokeClientMethod http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    _processIncomingData http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    onreceive http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    onmessage http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    connect http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    connect http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    _startTransport http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    _createTransport http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    _startInternal http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    start http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    _startInternal http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    _startWithStateTransitions http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    start http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    startConnection http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    startCore http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    start http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    rr http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    or http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    startCircutIfNotStarted http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    resolveRendererIdForDescriptor http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    determinePendingOperation http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    refreshRootComponents http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    rootComponentsMayRequireRefresh http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    rootComponentsMayRequireRefresh http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    onDocumentUpdated http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    Ki http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    Vi http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    <anonymous> http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1
    <anonymous> http://localhost:5045/_framework/blazor.web.ax6tuj8tun.js:1

 

Sometimes we even have a server error:
Microsoft.JSInterop.JSException: Not a table node: table_wrapper
RangeError: Not a table node: table_wrapper
    at https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1557112
    at pl.get (https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1558816)
    at https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1638148
    at Be.decorations (https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1638538)
    at https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1529498
    at Wa.someProp (https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1548718)
    at Fa (https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1529464)
    at Wa.updateStateInner (https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1545305)
    at Wa.update (https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1544591)
    at Wa.setProps (https://somesite/caesar/_content/Telerik.UI.for.Blazor/js/telerik-blazor.js?x=25.1.7.1096:23:1544734)
   at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
   at Telerik.Blazor.Components.TelerikEditor.SetOptions()
   at Telerik.Blazor.Components.TelerikEditor.OnParametersSetAsync()
   at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
   at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)

The server error is really hard to recreate, but it seems like users that has a slow computer and hovers the editor directly when loading gets this error sometimes...

Here is the source code (hovering the empty row will generate scripting errors):

<TelerikEditor Height="300px" @bind-Value="@Value" EditMode="Telerik.Blazor.EditorEditMode.Iframe" ReadOnly="true">
</TelerikEditor>

@code {
    public string Value { get; set; } =
            @"
<table>
    <tbody>
        <tr>
            <td>
               Some text
            </td>
        </tr>
        <tr style=""height: 24px"">
        </tr>
        <tr>
            <td>
                Some text
            </td>
        </tr>
    </tbody>
</table>
    ";
}

Pending Review
Last Updated: 26 Feb 2026 12:42 by Andreas
Created by: Andreas
Comments: 0
Category: Editor
Type: Bug Report
0

Even if setting ReadOnly="true", tables in the Editor can be resized...

This only happens in Iframe mode!


<TelerikEditor Height="300px" @bind-Value="@Value" EditMode="Telerik.Blazor.EditorEditMode.Iframe" ReadOnly="true">
</TelerikEditor>

@code {
    public string Value { get; set; } =
            @"
<table>
    <tbody>
        <tr>
            <td>
               Some text
            </td>
        </tr>
        <tr style=""height: 24px"">
        </tr>
        <tr>
            <td>
                Some text
            </td>
        </tr>
    </tbody>
</table>
    ";
}

In Development
Last Updated: 26 Feb 2026 07:02 by ADMIN
Scheduled for 2026 Q2
In our serverside blazor application we use the Telerik's DateTimePicker. When we type values in to the date time picker control, it jumps to the next section or to the end before completing the currect section. We use the format 'yyyy-MM-dd HH:mm'

It does not happen always and I think it is happenning when the internet connection is slow and it shows a Javascript error as well (screenshots below)
Unplanned
Last Updated: 26 Feb 2026 03:46 by Craig
Created by: Gary
Comments: 3
Category: DockManager
Type: Feature Request
11

Goal

Our application needs to allow end users to dynamically customize the Telerik Blazor DockManager at runtime by:

  • Adding new panels
  • Removing existing panels
  • Rearranging and resizing panels

 

These changes should be fully user-driven and persisted so that:

  • The layout is restored when the user returns
  • The layout is consistent across browsers and devices

 

In short, we want the DockManager to behave as a customizable dashboard whose state can be reliably stored and reloaded from our database.

 

 

Problem

The current Telerik Blazor DockManager implementation requires panels to be declared in Razor markup (markup driven) and managed through an external data source.

 

This creates several challenges:

  • The component state (DockState) is tightly coupled to the initial panel definitions.
  • Dynamically adding or removing panels from the data source conflicts with the internal DockState.
  • To synchronize changes, we must manually manipulate the DockState object using custom code.
  • This manipulation relies on internal behavior that is not formally supported and may break in future Telerik releases.

 

As a result, implementing a truly dynamic and persistent DockManager layout requires complex workarounds that are fragile and difficult to maintain.

 

 

Feature Request

We propose enhancing the DockManager with first-class support for dynamic panel synchronization by introducing:

Two coordinated parameters:

  • Data – the collection of panels
  • DockState – the persisted layout information

 

Expected behavior:

  • If the Data collection contains a panel that is not present in the DockState, the component should automatically:
    • Add the new panel to the layout
    • Place it at the end of the current structure (bottom or right, depending on layout)
    • Update the DockState accordingly
  • If the DockState contains a panel that is no longer present in the Data collection, the component should automatically:
    • Remove that panel from the layout
    • Update the DockState accordingly

 

This would allow developers to treat the DockManager as a true data-driven component, similar to other Telerik Blazor controls, without needing to manually modify internal state structures.

Unplanned
Last Updated: 25 Feb 2026 16:51 by ADMIN
Created by: Roy
Comments: 2
Category: Spreadsheet
Type: Feature Request
10

Please add support for protected worksheets and protected workbooks.

Unplanned
Last Updated: 25 Feb 2026 09:45 by Alain
Created by: Alain
Comments: 0
Category: PDFViewer
Type: Feature Request
1
Add an option to toggle on/off a scrollable list of thumbnail images similar to the functionality available in Adobe Acrobat Reader. It would provide a convenient way to preview the pages and navigate to the desired page. Currently, the user has to scroll the full-size pages, which is not the best solution in scenarios involving larger PDF documents. 
Unplanned
Last Updated: 25 Feb 2026 09:03 by Terrence
When the floating pane is initially set to Visible=false, docking no longer works after it is shown.
Unplanned
Last Updated: 24 Feb 2026 21:46 by Mike
Created by: BENAISSA
Comments: 7
Category: UI for Blazor
Type: Feature Request
85
I would like to be able to customize the keyboard shortcuts in all applicable components in the Telerik UI for Blazor
Unplanned
Last Updated: 24 Feb 2026 16:29 by ADMIN
Scheduled for 2026 Q2

The value in a numeric textbox cannot be changed for negative numerbes unless you erase all the text and restart.

 

<TelerikNumericTextBox Decimals="4"Max="5"Value="-4.56m"Id="general"></TelerikNumericTextBox>

 

    
Planned
Last Updated: 24 Feb 2026 16:01 by ADMIN
Scheduled for 2026 Q2

The PDF standard allows two ways to configure Acro fields and relate them to inputs (widget annotations):

  1. The field can be independent of the input widget. There can even be multiple inputs that point to the same field.
  2. The field and the widget can be represented by the same object in the PDF file.

Adobe Acrobat supports both options. Telerik PdfProcessing supports only the first option, which is more commonly used. The PDF Viewer supports only the second option. If the PDF Viewer loads a file with the first configuration, the component saves new field values in such a way that they can't be retrieved by PdfProcessing. Moreover, if the PDF file is opened locally, it looks like the new values are there, but when you click on a field, the original value shows. The new value behaves like a placeholder rather than a real value.

To Reproduce

  1. Open a file with Acro fields in the PDF Viewer with enabled form filling
  2. Edit the fields and save the file.
  3. Open the file with a desktop client like Adobe Acrobat Reader.
  4. Click on a textbox.
  5. Result - the old value shows. Instead, the new value should persist.
1 2 3 4 5 6