Unplanned
Last Updated: 05 Aug 2026 05:47 by Korstiaan
Created by: Korstiaan
Comments: 0
Category: Grid
Type: Bug Report
0

Bug report

Once the user locks a column through the column menu, they cannot unlock it, because the Unlock option remains disabled, while the Locked option remains enabled.

Regression in version 14.1.0. Potentially related to https://github.com/telerik/blazor/pull/14727

Reproduction of the problem

@page "/"

<TelerikGrid Data="@GridData"
             Pageable="true"
             FilterMode="@GridFilterMode.FilterRow"
             Sortable="true"
             ShowColumnMenu="true"
             Width="700px">
    <GridColumns>
        <GridColumn Field="@(nameof(SampleData.Id))" Width="80px" ShowColumnMenu="false" />
        <GridColumn Field="@(nameof(SampleData.FirstName))" Title="First Name" Id="firstname-column-id" Width="300px" />
        <GridColumn Field="@(nameof(SampleData.LastName))" Title="Last Name" Id="lastname-column-id" Width="300px" />
        <GridColumn Field="@(nameof(SampleData.CompanyName))" Title="Company" Id="companyname-column-id" Width="300px" />
        <GridColumn Field="@(nameof(SampleData.Team))" Title="Team" Id="team-column-id" Width="300px" />
        <GridColumn Field="@(nameof(SampleData.HireDate))" Title="Hire Date" Width="300px" />
    </GridColumns>
</TelerikGrid>

@code {
    private IEnumerable<SampleData> GridData = Enumerable.Range(1, 30).Select(x => new SampleData
        {
            Id = x,
            FirstName = $"FirstName {x}",
            LastName = $"LastName {x}",
            CompanyName = $"Company {x}",
            Team = "team " + x % 5,
            HireDate = DateTime.Now.AddDays(-x).Date
        });

    public class SampleData
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string CompanyName { get; set; }
        public string Team { get; set; }
        public DateTime HireDate { get; set; }
    }
}

Current behavior

Cannot unlock a locked column, the Unlock option remains disabled.

Expected/desired behavior

The Unlock and Lock options in the column menu must reflect the current column state.

Unplanned
Last Updated: 03 Aug 2026 12:43 by ADMIN
Scheduled for 2026 Q4 (Nov)

Description

When the ComboBox is bound with the OnRead event, after filtering and pressing the Tab key the highlighted item that matches the user input is not selected. If the ComboBox is bound through the Data parameter, the highlighted item is selected as expected.

Steps To Reproduce

  1. Run this REPL example: https://blazorrepl.telerik.com/GKOwYyuD25UuABfR07
  2. Focus the ComboBox and type in "BMW"
  3. Press the Tab key.

Actual Behavior

The ComboBox is blurred and the BMW item is not selected.

Expected Behavior

The ComboBox is blurred and the BMW item is selected.

Browser

All

Last working version of Telerik UI for Blazor (if regression)

No response

Unplanned
Last Updated: 03 Aug 2026 12:21 by ADMIN
Scheduled for 2026 Q4 (Nov)

The NOW button in the TimePicker's TimeView sets the time value, according to the server's time zone. Instead, it should use the client-side (user) time zone.

===

Telerik edit:

In the meantime, you can subscribe to the TimePicker's ValueChanged event and detect when the user clicks on Now. In such cases, the event handler will receive the current server time with a small margin of error, that depends on the latency.

<TelerikTimePicker Value="@TimePickerValue"
                   ValueChanged="@( (DateTime? d) => TimePickerValueChanged(d) )">
</TelerikTimePicker>

@code {
    private DateTime? TimePickerValue { get; set; }

    private void TimePickerValueChanged(DateTime? newValue)
    {
        if (newValue.HasValue && newValue - DateTime.Now < new TimeSpan(0, 0, 1))
        {
            // Retrieve and set the correct user's local time. The dummy code below is just for testing.
            TimePickerValue = DateTime.Now.AddMinutes(2);
        }
        else
        {
            TimePickerValue = newValue;
        }
    }
}

Unplanned
Last Updated: 03 Aug 2026 12:00 by ADMIN

Currently, I'm using your Calendar component for a vacation request feature. It works decently for picking dates in that I can use CTRL and Shift to select many dates. I'm currently making the page responsive but the mobile user experience lacks because there is no way to select more than one date.

The ideal user experience would be to be able to single click (or tap from mobile) to select a date and be able to do that on as many dates as preferred (to select many). Clicking/tapping again would deselect the date. That would be better in both the desktop and mobile versions and more intuitive for a user (as no one has initially assumed CTRL and Shift work - I have had to train them).

Unplanned
Last Updated: 03 Aug 2026 08:35 by ADMIN
Scheduled for 2026 Q3 (Aug)

The TreeView OnItemContextMenu event should fire only for the clicked item, but it fires for its parents too. The issue started occurring in version 13.0.0.

Test page

https://www.telerik.com/blazor-ui/documentation/components/treeview/events#example

Unplanned
Last Updated: 03 Aug 2026 08:34 by ADMIN
Scheduled for 2026 Q3 (Aug)

Bug report

Reproduction of the problem

(bug report only)
1. Run this example: https://blazorrepl.telerik.com/cUaBGOOZ34pkp6wB57
2. Inspect the MultiSelect’s input.
3. Click within the component’s input area, to open its popup.

The issue is also reproducible in the other dropdown components: https://blazorrepl.telerik.com/GUurGmvw32oPqGYu03

Current behavior

(optional)
When the dropdown opens, an aria-controls attribute is applied to the MultiSelect’s input. Its value does not match any existing DOM element.

Expected/desired behavior

The value of the aria-controls attribute should point at an existing element (e.g., the popup’s list element: https://www.telerik.com/blazor-ui/documentation/components/multiselect/accessibility/wai-aria-support#multiselect-wrapping-element ). But in this case the MultiSelect is not bound to data and a list element is not rendered in the popup.

Environment

  • Kendo/Telerik version: 14.1.0
  • jQuery version:
  • Browser: [all ]
Unplanned
Last Updated: 28 Jul 2026 15:49 by Dean

Bug report

Reproduction of the problem

(bug report only)
Steps to reproduce:

  1. Place a TelerikChart with OnSeriesClick inside a TileLayoutItem
<h4>TileLayout:</h4>

<TelerikTileLayout Columns="1" RowHeight="340px">
    <TileLayoutItems>

        <TileLayoutItem ColSpan="1" RowSpan="1">
            <HeaderTemplate>
                <span>With fix (.k-tilelayout-item.k-card) - header stays stable on click</span>
            </HeaderTemplate>
            <Content>
                <p>Last clicked: <strong>@_lastClicked</strong></p>
                <TelerikChart Width="100%" OnSeriesClick="@OnSeriesClick">
                    <ChartSeriesItems>
                        <ChartSeries Type="ChartSeriesType.Donut"
                                     Data="@_chartData"
                                     Field="@nameof(SliceData.Value)"
                                     CategoryField="@nameof(SliceData.Label)"
                                     ColorField="@nameof(SliceData.Color)">
                        </ChartSeries>
                    </ChartSeriesItems>
                    <ChartLegend Position="ChartLegendPosition.Bottom"></ChartLegend>
                </TelerikChart>
            </Content>
        </TileLayoutItem>

    </TileLayoutItems>
</TelerikTileLayout>

@code {
    private string _lastClicked = "none";

    private List<SliceData> _chartData = new()
    {
        new SliceData { Label = "Confirmed", Value = 42, Color = "#4CAF50" },
        new SliceData { Label = "Pending",   Value = 28, Color = "#FF9800" },
        new SliceData { Label = "Inactive",  Value = 30, Color = "#F44336" }
    };

    private void OnSeriesClick(ChartSeriesClickEventArgs args)
    {
        _lastClicked = args.Category?.ToString() ?? "unknown";
    }

    private class SliceData
    {
        public string Label { get; set; } = "";
        public double Value { get; set; }
        public string Color { get; set; } = "";
    }
}
  1. Click any chart series

Current behavior

(optional)
Tile header collapses and disappears.
Root cause: The theme applies overflow: hidden to .k-card, which is the tile's root flex container. When a Chart series is clicked, the Chart briefly inflates the body height, causing the flex layout to squeeze the header to height 0. The overflow: hidden on the root then clips the zero-height header out of view entirely.

Expected/desired behavior

Tile header remains visible

Workaround:

<style>
    .k-tilelayout-item.k-card {
        overflow: scroll;
    }
</style>

Environment

  • Kendo/Telerik version:
  • Browser: [all ]
Unplanned
Last Updated: 28 Jul 2026 07:07 by Johannes
Created by: Johannes
Comments: 0
Category: MaskedTextBox
Type: Bug Report
1

The MaskedTextBox caret (cursor) jumps to the last position on focus and every key stroke when the component is inside a Grid EditorTemplate and the Grid EditMode is InCell.

A possible workaround is to use inline or popup editing.

Test Page:

<TelerikGrid Data="@GridData"
             EditMode="@GridEditMode.Incell"
             OnUpdate="@OnGridUpdate"
             OnCreate="@OnGridCreate">
    <GridToolBarTemplate>
        <GridCommandButton Command="Add">Add Item</GridCommandButton>
    </GridToolBarTemplate>
    <GridColumns>
        <GridColumn Field="@nameof(Product.Name)" />
        <GridColumn Field="@nameof(Product.MaskedValue)">
            <EditorTemplate>
                @{ var dataItem = (Product)context; }
                <TelerikMaskedTextBox @bind-Value="@dataItem.MaskedValue"
                                      Mask="AAA-AAA" />
            </EditorTemplate>
        </GridColumn>
    </GridColumns>
</TelerikGrid>

@code {
    private List<Product> GridData { get; set; } = new();

    private int LastId { get; set; }

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

        createdItem.Id = ++LastId;

        GridData.Insert(0, createdItem);
    }

    private void OnGridUpdate(GridCommandEventArgs args)
    {
        var updatedItem = (Product)args.Item;
        var originalItemIndex = GridData.FindIndex(i => i.Id == updatedItem.Id);

        if (originalItemIndex != -1)
        {
            GridData[originalItemIndex] = updatedItem;
        }
    }

    protected override void OnInitialized()
    {
        for (int i = 1; i <= 5; i++)
        {
            GridData.Add(new Product()
            {
                Id = ++LastId,
                Name = $"Product {LastId}",
                MaskedValue = $"ABC-{LastId:D3}"
            });
        }
    }

    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; } = string.Empty;
        public string MaskedValue { get; set; } = string.Empty;
    }
}

Unplanned
Last Updated: 23 Jul 2026 11:12 by ADMIN
Scheduled for 2026 Q3 (Aug)

Bug report

Reproduction of the problem

(bug report only)

  1. Run this example: https://blazorrepl.telerik.com/mUOqQflm56D4xScx54
  2. Select a font in the FontFamily dropdown.
  3. Click the UnorderedList tool in the Editor’s toolbar.
  4. A bullet is added and the FontFamily tool loses its value.
  5. Click right after the added bullet.
  6. Once again select a font in the FontFamily drodown.
  7. Click the UnorderedList tool in the Editor’s toolbar to remove the bullet.
  8. The FontFamily tool loses its value.

Current behavior

(optional)
Provide additional information if the steps for reproducing the faulty behavior are not sufficient to describe the issue.

Expected/desired behavior

The FontFamily tool should keep its value when an unordered list is added/removed.

Environment

  • Kendo/Telerik version: 14.0.0
  • Browser: [all]
Unplanned
Last Updated: 16 Jul 2026 07:14 by ADMIN

The NumericTextBox does not render the new Value that is set in ValueChanged if this new value is different than the event argument. Instead, the component clears the textbox, even though the component Value parameter is correct.

https://blazorrepl.telerik.com/wzaAHYas221go9xd48

The problem occurs only if there is an existing value and the user removes it with Backspace.

Unplanned
Last Updated: 16 Jul 2026 06:06 by Nicholas
Created by: Nicholas
Comments: 0
Category: UI for Blazor
Type: Feature Request
1

Window, Dialog, and other popups render as children of TelerikRootComponent, which makes CSS Isolation difficult. Current strategy says to use containment selector or global scope css styles.

To allow CSS isolation to pass through, I'd like to see an additional "CssScope" attribute. For example:

<TelerikWindow CssScope="my-custom-scope">
</TelerikWindow>

Then when the window is rendered:

<div ... my-custom-scope>
....
</div>

 

Unplanned
Last Updated: 14 Jul 2026 11:26 by Wolfgang
Created by: Wolfgang
Comments: 0
Category: Popover
Type: Feature Request
3

Could you include the OnHide event in the TelerikPopover, similar to the Popup component? The Popover already hides on outside clicks, but we have no method to programatically react to it, for example to reset input values and treat it as a cancellation.

===

TELERIK EDIT: In the meantime, a possible workaround is to detect clicks outside the Popover with JavaScript:

https://blazorrepl.telerik.com/QKOBbSbF25rgdsgP20

@implements IAsyncDisposable

@inject IJSRuntime JS

<TelerikPopover @ref="@PopoverRef"
                AnchorSelector=".popover-target"
                ShowOn="@PopoverShowOn.Click"
                Position="@PopoverPosition.Right"
                Offset="20"
                Class="my-popover">
    <PopoverContent>
        Telerik Popover for Blazor
    </PopoverContent>
</TelerikPopover>

<p>Popover Hide Log: @PopoverOnHideLog</p>

<TelerikButton Class="popover-target" OnClick="ShowPopover">
    Show Popover
</TelerikButton>

<script suppress-error="BL9992">
    var dotnetRef;

    window.registerOutsideClick = function (dotnetHelper) {
        dotnetRef = dotnetHelper;
        document.addEventListener("click", onPopoverOutsideClick);
    };

    window.unregisterOutsideClick = function () {
        dotnetRef = null;
        document.removeEventListener("click", onPopoverOutsideClick);
    };

    function onPopoverOutsideClick(e) {
        window.setTimeout(() => {
            const popover = document.querySelector(".my-popover");
            const anchor = document.querySelector(".popover-target");

            const clickedInsidePopover = popover?.contains(e.target);
            const clickedAnchor = anchor?.contains(e.target);

            if (!clickedInsidePopover && !clickedAnchor) {
                dotnetRef?.invokeMethodAsync("OnPopoverHide");
            }
        }, 100);
    }
</script>

@code {
    #nullable enable

    private DotNetObjectReference<__Main>? DotNetRef { get; set; }

    private TelerikPopover? PopoverRef;

    private string PopoverOnHideLog { get; set; } = string.Empty;

    private void ShowPopover()
    {
        PopoverRef?.Show();
    }

    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            await JS.InvokeVoidAsync("registerOutsideClick", DotNetRef);
        }
    }

    protected override void OnInitialized()
    {
        DotNetRef = DotNetObjectReference.Create(this);
    }

    [JSInvokable]
    public void OnPopoverHide()
    {
        PopoverOnHideLog = $"Popover closed automatically at {DateTime.Now.ToString("HH:mm:ss")}";

        StateHasChanged();
    }

    public async ValueTask DisposeAsync()
    {
        if (DotNetRef != null)
        {
            DotNetRef.Dispose();
        }

        await JS.InvokeVoidAsync("unregisterOutsideClick");
    }
}

Unplanned
Last Updated: 13 Jul 2026 07:40 by Mathieu
Created by: Mathieu
Comments: 0
Category: TextArea
Type: Feature Request
1

Currently the Telerik TextArea for Blazor stops propagation for the keyDown event for Enter key presses and the app cannot detect them with @onkeydown on the component's parent container. A possible workaround is to use @onkeyup.

This request is about some built-in configuration or event that allows the app to detect Enter key presses. The goal is to distinguish such user actions in scenarios where Shift+Enter creates new lines, while Enter triggers a custom action like submit.

Unplanned
Last Updated: 07 Jul 2026 10:22 by Domingos Portela

The Grid resets and disables the adaptive mode for a column menu if the column has been hidden. The component also uses the previous adaptive mode that is no longer correct if the browser window is resized.

Steps to reproduce:

  • Shrink the browser width. Hide a column, show it back and then show its column menu.
  • Start from a wide browser. Show a column menu. Shrink the browser. Show the same column menu.
  • Start from a narrow browser. Show a column menu. Expand the browser. Show the same column menu.

Test page:

<TelerikGrid Data="@GridData"
             AdaptiveMode="@AdaptiveMode.Auto"
             FilterMode="GridFilterMode.FilterMenu"
             ShowColumnMenu="true">
    <GridColumns>
        <GridColumn Field="@nameof(Product.Name)" />
        <GridColumn Field="@nameof(Product.Group)" />
        <GridColumn Field="@nameof(Product.Price)" DisplayFormat="{0:c2}" />
        <GridColumn Field="@nameof(Product.Quantity)" DisplayFormat="{0:n0}" />
        <GridColumn Field="@nameof(Product.Released)" DisplayFormat="{0:d}" />
        <GridColumn Field="@nameof(Product.Discontinued)" />
    </GridColumns>
</TelerikGrid>

@code {
    private List<Product> GridData { get; set; } = new();

    protected override void OnInitialized()
    {
        var rnd = Random.Shared;

        for (int i = 1; i <= 3; i++)
        {
            GridData.Add(new Product()
            {
                Id = i,
                Name = $"Name {i} {(char)rnd.Next(65, 91)}{(char)rnd.Next(65, 91)}",
                Group = $"Group {i % 3 + 1}",
                Price = rnd.Next(1, 100) * 1.23m,
                Quantity = rnd.Next(0, 10000),
                Released = DateTime.Today.AddDays(-rnd.Next(60, 1000)),
                Discontinued = i % 4 == 0
            });
        }
    }

    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; } = string.Empty;
        public string Group { get; set; } = string.Empty;
        public decimal Price { get; set; }
        public int Quantity { get; set; }
        public DateTime Released { get; set; }
        public bool Discontinued { get; set; }
    }
}

Unplanned
Last Updated: 07 Jul 2026 07:17 by Sadik

Customers report inconsistent in-cell editing behavior with DatePicker columns in the Grid.

  • Case 1: click a date cell to enter edit mode, then click outside the Grid — edit mode terminates.
  • Case 2: click a date cell to enter edit mode, open the DatePicker popup, then click outside the Grid — the popup closes but the cell remains stuck in edit mode until pressing Esc or clicking another cell.

Here is a REPL test page that reproduces the issue (first date column) and provides a workaround (second date column):

https://blazorrepl.telerik.com/QAErkrEh090ykIxR16

The workaround relies on Grid EditorTemplate, the DatePicker OnClose event, and programmatic Grid edit mode management. The relevant code is:

@using System.ComponentModel.DataAnnotations

<TelerikGrid @ref="@GridRef"
             Data="@GridData"
             EditMode="@GridEditMode.Incell"
             OnUpdate="@OnGridUpdate"
             OnCreate="@OnGridCreate">
    <GridToolBarTemplate>
        <GridCommandButton Command="Add">Add Item</GridCommandButton>
    </GridToolBarTemplate>
    <GridColumns>
        <GridColumn Field="@nameof(Product.Name)" />
        <GridColumn Field="@nameof(Product.StartDate)" Title="BUG" DisplayFormat="{0:d}" />
        <GridColumn Field="@nameof(Product.EndDate)" Title="WORKAROUND" DisplayFormat="{0:d}">
            <EditorTemplate>
                @{ var editItem = (Product)context; }
                <TelerikDatePicker Value="editItem.EndDate"
                                   ValueChanged="@((DateTime? newValue) => OnGridDatePickerValueChanged(newValue, editItem))"
                                   ValueExpression="@( () => editItem.EndDate )"
                                   OnClose="@(async () => await OnGridDatePickerClose(editItem))" />
            </EditorTemplate>
        </GridColumn>
    </GridColumns>
</TelerikGrid>

@code {
    #nullable enable

    private TelerikGrid<Product>? GridRef;
    private List<Product> GridData { get; set; } = new();

    private int LastId { get; set; }

    private DateTime LastDatePickerValueChanged { get; set; } = DateTime.Now;

    private void OnGridDatePickerValueChanged(DateTime? newValue, Product editItem)
    {
        editItem.EndDate = newValue;
        LastDatePickerValueChanged = DateTime.Now;
    }

    private async Task OnGridDatePickerClose(Product editItem)
    {
        if (DateTime.Now - LastDatePickerValueChanged > TimeSpan.FromMilliseconds(500))
        {
            GridState<Product> gridState = GridRef!.GetState();

            if (gridState.EditItem is not null && gridState.EditItem.Id == editItem.Id)
            {
                // Uncomment to perform an item update instead of cancel
                // OnGridUpdate(new GridCommandEventArgs { Item = editItem });

                gridState.OriginalEditItem = null!;
                gridState.EditItem = null!;

                await GridRef.SetStateAsync(gridState);
            }
        }
    }

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

        createdItem.Id = ++LastId;

        GridData.Insert(0, createdItem);
    }

    private void OnGridUpdate(GridCommandEventArgs args)
    {
        var updatedItem = (Product)args.Item;
        var originalItemIndex = GridData.FindIndex(i => i.Id == updatedItem.Id);

        if (originalItemIndex != -1)
        {
            GridData[originalItemIndex] = updatedItem;
        }
    }

    protected override void OnInitialized()
    {
        for (int i = 1; i <= 5; i++)
        {
            GridData.Add(new Product()
            {
                Id = ++LastId,
                Name = $"Product {LastId}",
                Price = Random.Shared.Next(0, 100) * 1.23m,
                Quantity = Random.Shared.Next(0, 1000),
                StartDate = DateTime.Today.AddDays(-Random.Shared.Next(60, 1000)),
                EndDate = DateTime.Today.AddDays(Random.Shared.Next(1, 60)),
                IsActive = LastId % 4 > 0
            });
        }
    }

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

Unplanned
Last Updated: 07 Jul 2026 05:53 by ADMIN

The Telerik UI for Blazor TimePicker currently does not appear to expose an equivalent to the Kendo UI for jQuery TimePicker "focusTime" option.

https://github.com/telerik/kendo-ui-core/blob/master/docs/api/javascript/ui/timepicker.md#focustime-datedefault-null

In Kendo UI for jQuery, focusTime allows the popup to open with a specific time focused without actually setting the selected value. This is useful when the picker has no value yet.

For example, let's say we want the time-picker to open up with the placeholder value of 08:00, how would we achieve this in Telerik UI for Blazor? Currently it defaults the placeholder to the current time.

Thanks

Unplanned
Last Updated: 06 Jul 2026 05:41 by ADMIN
Created by: Michael
Comments: 2
Category: PDFViewer
Type: Feature Request
37
Please implement UI virtualization for the PDF Viewer, so that it can render large PDF files quickly. We are talking about documents with hundreds of pages and even more.
Unplanned
Last Updated: 02 Jul 2026 13:42 by ADMIN
Created by: Miroslav
Comments: 0
Category: Tooltip
Type: Bug Report
4

If the element of the tooltip is on top of the screen (almost outside of the viewport), hovering the remaining part of the element makes the tooltip create a flashing effect.

Please watch the attached video. 

Unplanned
Last Updated: 02 Jul 2026 13:42 by ADMIN
Created by: ManojKumar
Comments: 6
Category: Tooltip
Type: Bug Report
4

When I place a tooltip on drawer item, it just flickers randomly

[video-to-gif output image]

https://blazorrepl.telerik.com/wQbbmbGb05hzznPh45

 
Unplanned
Last Updated: 30 Jun 2026 14:29 by ADMIN
Created by: Eli
Comments: 7
Category: Scheduler
Type: Feature Request
1
In the Telerik Schedule I would like a straightforward way to hide the weekends from the month view.  Adding a parameter or a knowledge base article for how to do this would be great.
1 2 3 4 5 6