Unplanned
Last Updated: 15 May 2026 12:55 by ADMIN

If the ComboBox Value is set during initialization and the ValueMapper executes too fast and before the component has rendered, its Value doesn't show.

The problem also occurs in the MultiColumnComboBox.

Possible workarounds:

  • Set the component Value a bit later.
  • Delay the ValueMapper execution until OnAfterRenderAsync fires.
  • Rebind() the ComboBox in OnAfterRenderAsync. This will fire OnRead again.
  • Render the ComboBox conditionally in the first OnAfterRenderAsync call.

To reproduce:

@using Telerik.DataSource
@using Telerik.DataSource.Extensions

<p>ComboBox Value: @ComboBoxValue</p>

<TelerikComboBox ItemHeight="30"
                 OnRead="@OnComboBoxRead"
                 PageSize="20"
                 ScrollMode="@DropDownScrollMode.Virtual"
                 TItem="@ListItem"
                 TValue="@(int?)"
                 @bind-Value="@ComboBoxValue"
                 ValueMapper="@ComboBoxValueMapper"
                 Width="240px" />

@code {
    private List<ListItem>? ComboBoxData { get; set; }

    private int? ComboBoxValue { get; set; } = 3;

    private async Task OnComboBoxRead(ReadEventArgs args)
    {
        DataSourceResult result = await ComboBoxData.ToDataSourceResultAsync(args.Request);

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

    private async Task<ListItem?> ComboBoxValueMapper(int? selectValue)
    {
        // Triggers the bug
        await Task.Yield();

        ListItem? result = ComboBoxData?.FirstOrDefault(x => selectValue == x.Value);

        return result;
    }

    protected override void OnInitialized()
    {
        ComboBoxData = Enumerable
            .Range(1, 1234)
            .Select(x => new ListItem()
                {
                    Value = x,
                    Text = $"Item {x}"
                })
            .ToList();
    }

    public class ListItem
    {
        public int Value { get; set; }
        public string Text { get; set; } = string.Empty;
    }
}

Unplanned
Last Updated: 14 May 2026 13:30 by ADMIN

Please consider adding a pluggable runtime localization provider for Telerik UI for Blazor, primarily targeting Blazor WebAssembly scenarios.

This request is not critical for ASP.NET MVC / Razor / Blazor Server, where IDisplayMetadataProvider already provides a valid extensibility point for custom localization. However, Blazor WebAssembly has no equivalent mechanism, which creates a significant limitation.


Problem (Specific to Blazor WebAssembly)

In Blazor WebAssembly:

  • DisplayAttribute is static and reflection‑based
  • It cannot use DI, async logic, tenant context, or database access
  • MVC metadata extensions such as IDisplayMetadataProvider are not available

As a result, Telerik components can only resolve UI text via:

  • DisplayAttribute
  • .resx resources

This makes it impossible to integrate:

  • Database‑driven localization
  • Multi‑tenant localization
  • User‑editable translations
  • Runtime language switching

Why This Matters

In modern Blazor WebAssembly (SPA) applications, localization is often:

  • Runtime‑resolved
  • Backed by a database
  • Tenant‑ and user‑aware

Other libraries already support this model through pluggable localization providers.
A good example is FluentValidation, which allows localization logic to be resolved at runtime via DI, including custom providers and non‑resource‑based implementations.

References:

Because Telerik UI for Blazor does not expose a similar extensibility point, developers are forced to manually specify labels, headers, and enum texts throughout the UI, losing the benefits of automatic localization.


Suggested Direction

Introduce an optional localization provider that Telerik components can use when resolving UI text:

  • Keep full backward compatibility with DisplayAttribute
  • Enable advanced runtime‑based localization scenarios in Blazor WebAssembly where static attributes are insufficient

This would significantly improve Telerik UI’s suitability for enterprise and multi‑tenant Blazor WASM applications, without impacting existing server‑side solutions.

Unplanned
Last Updated: 12 May 2026 09:09 by ADMIN

The problem with the extra characters at the beginning of the PDF document has resurfaced.

The bytes returned by GetFileAsync() don't start with %PDF-, but with JS.ReceiveByteArray. Some PDF readers and my antivirus flag the file as corrupt or suspicious. I worked around it by stripping everything before the first %PDF- occurrence in the bytes before writing to disk.

Unplanned
Last Updated: 12 May 2026 09:02 by Herve

I use TelerikPdfViewer to let my users annotate PDF documents (highlights, text boxes, drawings). Since the component only provides a built-in Download button (client-side) and not a Save to backend, I implemented a custom Save button that:

1. Calls await pdfViewerRef.GetFileAsync() to retrieve th e annotated PDF as byte[].
2. Sends the bytes to my server via a Blazor service call.
3. The server persists them to a file share with File.WriteAllBytesAsync(path, bytes).

Simplified:

<PdfViewerToolBarCustomTool>
    <TelerikButton OnClick="@SaveAnnotationsAsync">Save</TelerikButton>
</PdfViewerToolBarCustomTool>

var annotatedPdf = await pdfViewerRef.GetFileAsync();
await _scanFlowApi.SaveAnnotatedDocumentAsync(documentId, annotatedPdf);
// server-side: await File.WriteAllBytesAsync(path, annotatedPdf, ct);

It works — the annotations are saved and I can reopen the file in the viewer without issues. But after saving and opening the file in Adobe Reader, closing it shows the prompt "Do you want to save the changes made to this document?" — even though the user hasn't modified anything in Adobe. The PDF seems to contain incremental updates appended at the end.

Unplanned
Last Updated: 07 May 2026 20:56 by Vitor
Created by: ben
Comments: 9
Category: ComboBox
Type: Feature Request
12

Related to https://docs.telerik.com/blazor-ui/knowledge-base/grid-bind-navigation-property-complex-object

However I'm looking to do this for the Combobox, i.e.

<TelerikComboBox Data="@Users"                               
                                 @bind-Value="@FormElement.UserInitials"
                                 ValueField="Dto.UserInitials"                                 
                                 TextField="Dto.UserInitials"
               >
</TelerikComboBox>

 

public class Users

{

   //bunch of properties 

   public UserSubProperties Dto {get; set;}

}

 

public class UserSubProperties

{

   public string UserInitials {get; set;}

}

Unplanned
Last Updated: 07 May 2026 13:08 by Igor

With `PersistTabContent="true"`, when tabs start with `Visible="false"` and later become `Visible="true"`, all visible tab contents are instantiated simultaneously instead of only the active tab.

Reproduction: 

@page "/TestPage"

<button @onclick="Load">Load</button>

<TelerikTabStrip PersistTabContent="true">
    <TabStripTab Title="Tab 1" Visible="@_tabsVisible">
        <TestInitComponent Message="Hello from tab1" />
    </TabStripTab>
    <TabStripTab Title="Tab 2" Visible="@_tabsVisible">
        <TestInitComponent Message="Hello from tab2" />
    </TabStripTab>
    <TabStripTab Title="Tab 3" Visible="@_tabsVisible">
        <TestInitComponent Message="Hello from tab3" />
    </TabStripTab>
</TelerikTabStrip>

@code {
    private bool _tabsVisible = false;

    private void Load()
    {
        _tabsVisible = true;
    }
}

TestInitComponent.razor

<h3>TestInitComponent</h3>

@code {

    [Parameter]
    public string Message { get; set; } = string.Empty;

    protected override void OnInitialized()
    {
        base.OnInitialized();
        Console.WriteLine($"TestInitComponent OnInitialized {Message}");
    }
}

Steps: Open page → click Load.

Unplanned
Last Updated: 05 May 2026 12:34 by ADMIN
Scheduled for 2026 Q2

Hi Support,

I have an issue with the DragToSelect feature of a Telerik grid in Blazor when this grid is inside a TelerikWindow. 

Summary
When a TelerikGrid configured with GridSelectionSettings DragToSelect="true" is rendered inside the <WindowContent> of a <TelerikWindow>, the drag-to-select (rubber-band) behavior is not working properly — the user can only select cells/rows via individual clicks.

Single-click selection continues to work in both cases. The issue is specific to the drag gesture.

Steps to reproduce
Create a page with a TelerikWindow set to Visible="true".
Inside <WindowContent>, place a TelerikGrid with:
SelectionMode="@GridSelectionMode.Multiple"
SelectedCells / SelectedCellsChanged bound
<GridSettings><GridSelectionSettings SelectionType="@GridSelectionType.Cell" DragToSelect="true" /></GridSettings>
Open the window and try to select multiple cells by pressing the mouse button on a cell and dragging over neighboring cells.

Expected behavior
A rubber-band selection rectangle appears and all cells the pointer passes over become selected — same as when the identical grid is placed on a regular page (outside a modal window).

Actual behavior
Drag selection occur rarely. Only the single cell under the initial mousedown gets selected. The rubber-band rectangle rarely appears, and SelectedCellsChanged fires with a single descriptor instead of the full drag range.

Minimal repro (REPL-ready)
<TelerikWindow Visible="true" Width="800px" Height="500px">
    <WindowTitle>Repro</WindowTitle>
    <WindowContent>
        <TelerikGrid Data="@Data" TItem="SampleItem"
                     SelectionMode="@GridSelectionMode.Multiple"
                     SelectedCells="@SelectedCells"
                     SelectedCellsChanged="@((IEnumerable<GridSelectedCellDescriptor> c) => SelectedCells = c)">
            <GridSettings>
                <GridSelectionSettings SelectionType="@GridSelectionType.Cell" DragToSelect="true" />
            </GridSettings>
            <GridColumns>
                <GridColumn Field="@nameof(SampleItem.Id)" />
                <GridColumn Field="@nameof(SampleItem.Name)" />
            </GridColumns>
        </TelerikGrid>
    </WindowContent>
</TelerikWindow>

@code {
    public record SampleItem(int Id, string Name);
    private List<SampleItem> Data = Enumerable.Range(1, 20).Select(i => new SampleItem(i, $"Item {i}")).ToList();
    private IEnumerable<GridSelectedCellDescriptor> SelectedCells = Enumerable.Empty<GridSelectedCellDescriptor>();
}

Now my questions :
- Is this a known limitation of DragToSelect when the grid is inside a modal TelerikWindow?
- Is there an officially supported workaround (CSS pointer-events tweak on .k-overlay, event capture override, grid setting, etc.)?
- If it is a bug, could you open a public issue we can track?

Many thanks you in advance.

Franck Boisdé

Unplanned
Last Updated: 28 Apr 2026 11:08 by Zeek

Bug report

Reproduction of the problem

(bug report only)
Regression introduced in 13.0.0.
1. Run this example: https://blazorrepl.telerik.com/wUuSGClv00orFeRm59

Current behavior

(optional)
The Size, Rounded, FillMode parameters are ignored.

Expected/desired behavior

The parameter values should apply and change the appearance of the SearchBox.

Environment

  • Browser: [all ]
Unplanned
Last Updated: 28 Apr 2026 08:06 by ADMIN
Created by: Farukh
Comments: 2
Category: StockChart
Type: Feature Request
2
Please expose an event that fires when the user changes the range selection using the navigator handles. I want to change some label values on my component based on date range selection change.
Unplanned
Last Updated: 28 Apr 2026 06:26 by ADMIN
Scheduled for 2026 Q2
The DropDownTree OnChange event fires twice on item selection. Unlike other components like DropDownList or ComboBox, OnChange does not fire on blur. 
Unplanned
Last Updated: 27 Apr 2026 07:04 by ADMIN
Scheduled for 2026 Q2
Created by: Davide
Comments: 0
Category: Grid
Type: Feature Request
8
Grid grouping + aggregates performance in WebAssembly apps is considerably slower (test project is available in ticket 1562161). Please research for ways to improve it.
Unplanned
Last Updated: 23 Apr 2026 14:33 by ADMIN
I would like to drag all selected items from one ListBox and drop them to another. 
Unplanned
Last Updated: 23 Apr 2026 12:00 by Gary

Three methods in Telerik.Blazor.Extensions.ReflectionExtensions call target.GetType() without first checking whether target is null. When a null object reaches any of these methods (e.g. via ConvertToFileEntry receiving a null data item), a NullReferenceException is thrown. Consider adding a null return/guard, which will prevent the exception.

Affected methods:

HasGetter                 
GetPropertyValue   
SetPropertyValue   

Proposed change:

Add an early null return/guard for target in each method, consistent with the existing null check for propertyName:

public static bool HasGetter(this object target, string propertyName)
{
    if (target == null || propertyName == null)
    {
        return false;
    }
    // ...
}

public static object GetPropertyValue(this object target, string propertyName)
{
    if (target == null || propertyName == null)
    {
        return null;
    }
    // ...
}

public static void SetPropertyValue(this object target, string propertyName, object value)
{
    if (target == null)
    {
        return;
    }
    // ...
}

Expected outcome

  • No NRE is thrown when a null object reaches these methods.
  • Callers receive a graceful null/false/no-op result and can handle it at the appropriate level.
  • The real problem (a null item being passed to ConvertToFileEntry) surfaces as a missing/empty details pane rather than an unhandled exception that breaks the entire component subtree.

 

 

Unplanned
Last Updated: 22 Apr 2026 10:50 by Santiago
Created by: Santiago
Comments: 0
Category: ComboBox
Type: Bug Report
3

(Also applies to AutoComplete, DropDownList, MultiSelect, MultiColumnComboBox).

When using Height="auto" in the popup settings and filtering with a dropdown above the component, the dropdown detaches from the main component.

<ComboBoxPopupSettings Height="auto"></ComboBoxPopupSettings>

https://blazorrepl.telerik.com/cKkSQGFO50ovCpr829

A possible workaround is to use a MaxHeight that is less than half the browser viewport.

<ComboBoxPopupSettings Height="auto" MaxHeight="45vh"></ComboBoxPopupSettings>

Unplanned
Last Updated: 21 Apr 2026 12:22 by Alexey

Example:

<PageTitle>Home</PageTitle>

<div>
    <TelerikTextBox Width="20rem" Placeholder="Pallet" DebounceDelay="1000" @bind-Value="@_textInput" OnChange="@(async (input) => await OnInputChanged(input))" />
</div>
<p>@_textInput</p>


@code {
    private string? _textInput;

    private async Task OnInputChanged(object input)
    {
        Console.WriteLine($"Immediate: function parameter: {input}, bound variable: {_textInput}");
        await Task.Delay(1000);
        Console.WriteLine($"Delayed: function parameter: {input}, bound variable: {_textInput}");
        //Make the OnChange event receive the immediate value when the DebounceDelay is set
    }
}

The DebounceDelay is set to 1 second to highlight the behavior, although we have observed it with delays less than 100 milliseconds when the input is from a barcode scanner and the Enter is part of the scan. Start the sample, type "123" in the input, and hit enter within 1 second.

The output in the console is:
Immediate: function parameter: , bound variable:
Delayed: function parameter: , bound variable: 123

Unplanned
Last Updated: 16 Apr 2026 12:10 by Steve
Created by: Steve
Comments: 0
Category: Grid
Type: Bug Report
0

Bug Description

Introduced in v13.1.0. An item that has no text (empty string) renders a span (.k-list-item-text) with height 0px.

Steps to Reproduce

Steps to reproduce the behavior:

  1. Go to https://blazorrepl.telerik.com/mgEobKlm00OJm8OW55
  2. Click the DropDownList to show its list
  3. Inspect the second item in the browser dev tools

Also reproducible in: https://dojo.telerik.com/ZVOXYUsb/3

Expected Behavior

The item that has no text should have the same height as items that have text.

Actual Behavior

The height of the span.k-list-item-text is 0px.

Screenshots/Videos

Environment Information

Affected Theme(s)

  • All themes

Affected Component(s)

Please specify the component(s) where the bug occurs: ___________

Affected Suites

  • Kendo UI for jQuery
  • Telerik UI for Blazor
  • Telerik UI for ASP.NET Core
  • Telerik UI for ASP.NET MVC
  • likely others as well

Browser Information

  • All browsers

Build System Information

Reproduction Case

CodePen/StackBlitz/JSFiddle Link

https://blazorrepl.telerik.com/mgEobKlm00OJm8OW55

https://dojo.telerik.com/ZVOXYUsb/3

Sample Code

<TelerikDropDownList Data="@DropDownListData" @bind-Value="DropDownListValue" />

@code {
    private List<string> DropDownListData = new List<string>() { "Item1", string.Empty, "Item3" };

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

    protected override void OnInitialized()
    {
        DropDownListValue = string.Empty;
    }
}

Workaround

<style>
    .k-list-item-text {
        min-height: 20px;
    }
</style>

Unplanned
Last Updated: 15 Apr 2026 10:08 by ADMIN
Created by: Indra
Comments: 2
Category: DropDownList
Type: Bug Report
8

I have a cascading DropDownList scenario with virtual scrolling. When the first DropDownList changes value, the second one should reset its scrollbar to the top, because it now contains new data. This doesn't happen.

Here is a REPL test page.

===

ADMIN EDIT

===

As a workaround for the time being, you may track when the value is changed in the parent DropDownList to dispose and re-initialize the child DropDownList.

Here is an example: https://blazorrepl.telerik.com/mdafHabk585ZtzyV54.

Unplanned
Last Updated: 15 Apr 2026 08:51 by ADMIN
Created by: Emma
Comments: 3
Category: Scheduler
Type: Bug Report
0

I have been having issues adding the month view to a Telerik Blazor scheduler component, when there is grouping. It gives a null reference error any time I try to switch to the month view. I also tried it using the available demo for grouping in Telerik REPL, the only difference I found between my code and the demo was that I had used the ItemsPerSlot parameter.  I added this to the demo, and was able to reproduce the error I was seeing, and I have attached the console output from the REPL demo. I believe there is either a bug with the ItemsPerSlot being used in conjunction with grouping on a scheduler component, or some instruction missing from how to set it up properly to prevent this null reference issue. 

Changed code:

<SchedulerMonthView ItemsPerSlot="5"></SchedulerMonthView>

Demo used:

Blazor Scheduler (Event Calendar) Demos - Grouping | Telerik UI for Blazor

 


Unplanned
Last Updated: 15 Apr 2026 06:22 by ADMIN
Created by: Gary
Comments: 14
Category: DockManager
Type: Feature Request
12

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: 09 Apr 2026 16:21 by Josh
Created by: Uluç
Comments: 8
Category: Scheduler
Type: Feature Request
22
I have Working Hours from 9 AM to 6 PM, and All day hours from 8 AM to 23 PM.

By default, the scheduler will display the all day hours, and the user has to click on business hours to see them, it creates an extra unnecessary step for the user in my case.

I would like the business hours view to be the default rather than the all day hours view.
1 2 3 4 5 6