Declined
Last Updated: 05 Mar 2026 11:49 by Andreas
Created by: Andreas
Comments: 2
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>
    ";
}

Unplanned
Last Updated: 05 Mar 2026 09:51 by ADMIN

There is an undocumented breaking change in the selection behavior of the v13.0.0 TreeView component that prevents us from upgrading from v12.3.0.

In v12.3.0, selecting a TreeView checkbox does change the TreeView item selection or trigger the selection change events. In v13.0.0, checking an item does also change the selection. The v12.3.0 behavior is important for our implementation because selecting a TreeView item in our application fetches data from a database and we do not want the performance overhead of those calls when checking an item---we want the user to be able to select multiple items and only then explicitly fetch the data for all of them.

I've created a minimal example here: https://blazorrepl.telerik.com/cqYdEePd40Zq3ava43. You can see the behavior differences when switching between versions.

Please let me know if there's any additional information we can provide. A workaround to this behavior would be appreciated. Thank you!

Unplanned
Last Updated: 05 Mar 2026 09:35 by ADMIN
Created by: Andreas
Comments: 1
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>
    ";
}

Unplanned
Last Updated: 05 Mar 2026 08:45 by Christian

Currently working on moving from winform to Blazor and found a feature not supported in Telerik atm.

Getting current error when trying to enable Virtualiztion inside a grid

Groupable is not supported with the Virtualization feature of Telerik Grid

Where im already setting grouping on one of the columns

Declined
Last Updated: 04 Mar 2026 17:55 by Michal
Created by: Michal
Comments: 4
Category: Grid
Type: Bug Report
0

Hello,

seems like the GridToolbar(even the GridToolbarTemplate) in grid is not rendering "GridToolBarOverflowMode.Section". The "Scroll" mode is ok.

Is there any additional setup, or did i missed some setup...?

REPL:

 https://blazorrepl.telerik.com/wqYQvvEq40GkajEZ30

based on:
https://www.telerik.com/blazor-ui/documentation/components/grid/toolbar

some mention about "sections" but it seems for another purpose:

https://www.telerik.com/blazor-ui/documentation/knowledge-base/common-net8-sections

Thanks

Unplanned
Last Updated: 04 Mar 2026 16:26 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.
Pending Review
Last Updated: 04 Mar 2026 14:57 by Lee
Created by: Lee
Comments: 0
Category: UI for Blazor
Type: Feature Request
0

It is a very common occurrence to need to open a menu link in a new tab. Currently the prescribed way to do this is to create a Template for the Menu Items. This involves a lot of manual implementation  (verbose template code,  helper methods, changing the menu item object to not use the Url property so as to override the default UrlField behavior). This is a lot of extra work to accomplish a very common and simple task. 

I propose that a new property be introduced to the Menu component (to be added to Menu Items) - a boolean field that defines whether or not to open the link in a new tab (i.e. "NewTab", or "External", or something of the like). It could default to false so that, in most cases, it could be ignored. But if set to true, the Menu component would handle adding "target='_blank'" and "rel='noopener noreferer'" to the link, while leaving all of the other functionality and styling in place. 

It would greatly simplify the usage. And I would suggest that every programming who is building navigation menus would have a case where it's needed.

I would think, though I haven't looked at the core code yet, that this would be a relatively simple feature to add.   


public class MenuItem
{
    public string Text { get; set; }
    public ISvgIcon? Icon { get; set; }
    public string Url { get; set; } = string.Empty;
    public bool NewTab { get; set; } = false;
    public List<MenuItem>? Items { get; set; }

    public MenuItem(string text, ISvgIcon? icon, string url, bool newTab, List<MenuItem>? items)
    {
        Text = text;
        Icon = icon;
        Url= url;
        NewTab = newTab;
        Items = items;
    }
}

Completed
Last Updated: 04 Mar 2026 14:24 by ADMIN
Release 2026 Q2

Currently, a TextField value of empty string will produce a blank item in the dropdown.

On the other hand, a null TextField value will produce the fully qualified class name.

Here are possible workarounds: https://blazorrepl.telerik.com/myOlFpFb1465jW8E07

In Development
Last Updated: 04 Mar 2026 13:27 by ADMIN
Scheduled for 2026 Q2
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.
Planned
Last Updated: 04 Mar 2026 08:51 by ADMIN
Scheduled for 2026 Q2

How to reproduce:

  1. Go to https://demos.telerik.com/blazor-ui/grid/editing-incell
  2. Go to the last Grid page, which has empty space below the last table row.
  3. Open any Grid cell for editing.
  4. Click on the empty space in the Grid below the last table row.
  5. The Grid does not exit edit mode like it should.

The regression was introduced in version 12.2.0. The last version that works correctly is 12.0.0.

The possible workarounds are:

@using System.ComponentModel.DataAnnotations
@using Telerik.DataSource
@using Telerik.DataSource.Extensions

<TelerikGrid @ref="@GridRef"
             OnRead="@OnGridRead"
             TItem="@Product"
             EditMode="@GridEditMode.Incell"
             OnCreate="@OnGridCreate"
             OnDelete="@OnGridDelete"
             OnUpdate="@OnGridUpdate"
             Height="600px">
    <GridToolBarTemplate>
        <GridCommandButton Command="Add">Add Item</GridCommandButton>
    </GridToolBarTemplate>
    <GridColumns>
        <GridColumn Field="@nameof(Product.Name)">
            <EditorTemplate>
                @{ var dataItem = (Product)context; }
                <span @onfocusout="@( async () => await OnGridCellFocusOut(nameof(Product.Name)) )">
                    <TelerikTextBox @bind-Value="@dataItem.Name" />
                </span>
            </EditorTemplate>
        </GridColumn>
        @* <GridColumn Field="@nameof(Product.Price)" DisplayFormat="{0:C2}" />
        <GridColumn Field="@nameof(Product.Quantity)" DisplayFormat="{0:N0}" />
        <GridColumn Field="@nameof(Product.ReleaseDate)" DisplayFormat="{0:d}" /> *@
        <GridColumn Field="@nameof(Product.Discontinued)" Width="120px">
            <EditorTemplate>
                @{ var dataItem = (Product)context; }
                <span @onfocusout="@( async () => await OnGridCellFocusOut(nameof(Product.Discontinued)) )">
                    <TelerikCheckBox @bind-Value="@dataItem.Discontinued" />
                </span>
            </EditorTemplate>
        </GridColumn>
        <GridCommandColumn Width="180px">
            <GridCommandButton Command="Delete">Delete</GridCommandButton>
        </GridCommandColumn>
    </GridColumns>
</TelerikGrid>

@code {
    private TelerikGrid<Product>? GridRef { get; set; }

    private ProductService GridProductService { get; set; } = new();

    private async Task OnGridCellFocusOut(string field)
    {
        await Task.Delay(100);

        if (GridRef is null)
        {
            return;
        }

        GridState<Product> gridState = GridRef.GetState();
        Product? editItem = gridState.EditItem as Product;

        if (editItem is null)
        {
            return;
        }

        GridCommandEventArgs args = new GridCommandEventArgs()
        {
             Field = field,
             Item = editItem
        };

        await OnGridUpdate(args);


        gridState.EditField = default;
        gridState.EditItem = default!;
        gridState.OriginalEditItem = default!;

        await GridRef.SetStateAsync(gridState);
    }

    private async Task OnGridCreate(GridCommandEventArgs args)
    {
        var createdItem = (Product)args.Item;

        await GridProductService.Create(createdItem);
    }

    private async Task OnGridDelete(GridCommandEventArgs args)
    {
        var deletedItem = (Product)args.Item;

        await GridProductService.Delete(deletedItem);
    }

    private async Task OnGridRead(GridReadEventArgs args)
    {
        DataSourceResult result = await GridProductService.Read(args.Request);

        args.Data = result.Data;
        args.Total = result.Total;
        args.AggregateResults = result.AggregateResults;
    }

    private async Task OnGridUpdate(GridCommandEventArgs args)
    {
        var updatedItem = (Product)args.Item;

        await GridProductService.Update(updatedItem);
    }

    public class Product
    {
        public int Id { get; set; }
        [Required]
        public string Name { get; set; } = string.Empty;
        public string Description { get; set; } = string.Empty;
        public decimal? Price { get; set; }
        public int Quantity { get; set; }
        [Required]
        public DateTime? ReleaseDate { get; set; }
        public bool Discontinued { get; set; }
    }

    #region Data Service

    public class ProductService
    {
        private List<Product> Items { get; set; } = new();

        private int LastId { get; set; }

        public async Task<int> Create(Product product)
        {
            await SimulateAsyncOperation();

            product.Id = ++LastId;

            Items.Insert(0, product);

            return LastId;
        }

        public async Task<bool> Delete(Product product)
        {
            await SimulateAsyncOperation();

            if (Items.Contains(product))
            {
                Items.Remove(product);

                return true;
            }

            return false;
        }

        public async Task<List<Product>> Read()
        {
            await SimulateAsyncOperation();

            return Items;
        }

        public async Task<DataSourceResult> Read(DataSourceRequest request)
        {
            return await Items.ToDataSourceResultAsync(request);
        }

        public async Task<bool> Update(Product product)
        {
            await SimulateAsyncOperation();

            int originalItemIndex = Items.FindIndex(x => x.Id == product.Id);

            if (originalItemIndex != -1)
            {
                Items[originalItemIndex] = product;
                return true;
            }

            return false;
        }

        private async Task SimulateAsyncOperation()
        {
            await Task.Delay(100);
        }

        public ProductService(int itemCount = 5)
        {
            Random rnd = Random.Shared;

            for (int i = 1; i <= itemCount; i++)
            {
                Items.Add(new Product()
                {
                    Id = ++LastId,
                    Name = $"Product {LastId}",
                    Description = $"Multi-line\ndescription {LastId}",
                    Price = LastId % 2 == 0 ? null : rnd.Next(0, 100) * 1.23m,
                    Quantity = LastId % 2 == 0 ? 0 : rnd.Next(0, 3000),
                    ReleaseDate = DateTime.Today.AddDays(-rnd.Next(365, 3650)),
                    Discontinued = LastId % 2 == 0
                });
            }
        }
    }

    #endregion Data Service
}

 

Unplanned
Last Updated: 03 Mar 2026 06:41 by Marc
Created by: Marc
Comments: 14
Category: PDFViewer
Type: Feature Request
8
I want to be able to pinch the document in the PDFViewer and zoom it. Similar to how PDF is fluently zoomed in and out on pinch if opened in a web browser.
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 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.
1 2 3 4 5 6