Unplanned
Last Updated: 07 Oct 2026 18:18 by Tom
Created by: Michael
Comments: 3
Category: PDFViewer
Type: Feature Request
43
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: 06 Oct 2026 18:38 by ADMIN

I'm trying to use the Blazor editor but the "Insert Image" function is very basic. Previously using Webforms & Core the insert image in the editor presented the user with a file management and image upload popup. Is this functionality available with the Blazor component?

 

=====ADMIN EDIT=====

Possible alternative:

  1. Utilize a custom Editor's tool that opens a Window or Dialog containing a FileManager.
  2. Use the FileManager's SelectedItemsChanged event to determine which image the user wants to insert into the Editor.
  3. Programmatically execute the Editor's insertImage command.
Unplanned
Last Updated: 06 Oct 2026 18:37 by ADMIN
Created by: Sebastian
Comments: 2
Category: PDFViewer
Type: Bug Report
1
  • The PDF Viewer does not display the initial file if Zoom is set to FitToWidth or FitToPage. This is due to --scale-factor: NaN; --total-scale-factor: NaN; set on the PDF Viewer element.
  • If the PDF Viewer initially shows with no loaded file, setting Zoom to FitToWidth or FitToPage initially or after opening a file leads to infinity zoom due to --scale-factor: Infinity; --total-scale-factor: Infinity; set on the PDF Viewer element.

The only scenario that works is to set the initial Zoom to a numeric value and have an open file by default.

Unplanned
Last Updated: 06 Oct 2026 15:49 by ADMIN
Created by: Lee
Comments: 0
Category: Charts
Type: Feature Request
1
Add Chart tooltip positioning capabilities, for example: Top, Right, Bottom, Left.

Due to the lack of an option to specify position, the tooltips  cover part of the line markers, e.g., in a horizontal line Chart scenario. 
Unplanned
Last Updated: 06 Oct 2026 15:36 by ADMIN

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: 06 Oct 2026 15:36 by ADMIN
Created by: Rick
Comments: 2
Category: Switch
Type: Feature Request
8

I would like to see icon support for the switch control.  See the attached screen shot for the use case.

Unplanned
Last Updated: 06 Oct 2026 15:35 by ADMIN

Try with culture es-ES and you will see the problem.

When es-ES, "dot [.]" is not a decimal separator, therefore you can't use the "NumpadDecimal" key to write a decimal number.

@using System.Globalization

<b>Culture:</b> @CultureInfo.CurrentCulture.Name;
<br />
<b>Culture UI:</b> @CultureInfo.CurrentUICulture.Name
<br />
<b>DefaultThreadCurrentCulture:</b> @CultureInfo.DefaultThreadCurrentCulture?.Name
<br />
<b>DefaultThreadCurrentUICulture:</b> @CultureInfo.DefaultThreadCurrentUICulture?.Name
<br /><br />
<b>Val 1:</b>
<TelerikNumericTextBox @bind-Value="@Val1" Decimals="6" Width="100px" />
&nbsp;&nbsp;
<TelerikNumericTextBox @bind-Value="@Val1" Decimals="6" Width="100px" />
<input type="number" @bind-value="@Val1" step="any" style="width: 100px" />

<br />
<b>Val 2:</b>
<input type="number" @bind-value="@Val2" step="any" style="width: 100px" />
&nbsp;&nbsp;
<input type="number" @bind-value="@Val2" step="any" style="width: 100px" />

@code {
    decimal Val1 { get; set; }
    decimal Val2 { get; set; }

    protected override void OnInitialized()
    {
        CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = CultureInfo.DefaultThreadCurrentCulture = CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("es-ES");
        //CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = CultureInfo.DefaultThreadCurrentCulture = CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("en-US");
    }
}

 

[ADMIN EDIT]

In general, our components obey the culture that is set in the application. If the current culture requires a "," decimal separator, our component will accept commas and ignore dots. Our component doesn't know if the user is pressing the decimal separator key on the numeric pad, or the "standard"  [ > . ] key.

What we can do to improve the behavior is to implement a feature for automatic handling of the decimal separator character. In other words, if the component detects invalid decimal separator input, it will switch to the correct one. This feature will handle the Numpad key and output it in the right culture.

Here is a possible workaround that uses JavaScript to intercept the "other" decimal separator and insert the "correct" one in the NumericTextBox.

@inject IJSRuntime js

<span @onkeydown="@( (KeyboardEventArgs args) => OnSpanKeyDown(args, "ntb1") )">
    <TelerikNumericTextBox @bind-Value="@DValue"
                           Width="200px"
                           Id="ntb1" />
</span>

Code: @LogCode , Key: @LogKey

<!-- Move JS to external JS file in production apps -->
<script suppress-error="BL9992">
    function addDot(ntbId) {
        var textbox = document.querySelector("#" + ntbId);
        if (textbox && textbox.value.indexOf(".") == -1) { // or ","
            textbox.value += "."; // or ","
        }
    }
</script>

@code {
    decimal DValue { get; set; }

    string LogCode { get; set; }
    string LogKey { get; set; }

    async Task OnSpanKeyDown(KeyboardEventArgs args, string ntbId)
    {
        LogCode = args.Code;
        LogKey = args.Key;

        if (args.Key == ",") // or "."
        {
            await js.InvokeVoidAsync("addDot", ntbId);
        }
    }
}

Another option in the meantime is to use a standard HTML input or InputNumber with the Telerik CSS class "k-textbox". This way the input will look the same as a Telerik textbox and keep the app look consistent.

Unplanned
Last Updated: 06 Oct 2026 14:44 by ADMIN
I modified this sample app: https://github.com/telerik/blazor-ui/tree/master/grid/datasourcerequest-on-server/WebApiFromServerApp.

I am trying to add aggregation to the grouping and display them in the group footers. I am successfully returning the aggregated values but they are not displayed in the GroupFooterTemplate.
Unplanned
Last Updated: 06 Oct 2026 05:57 by Brian
Created by: Brian
Comments: 0
Category: Upload
Type: Feature Request
1
Add a MaxConcurrent that would allow to control how many files can be uploaded simultaneously to the server at any given time.
Unplanned
Last Updated: 01 Oct 2026 11:01 by David

Bug report

Reproduction of the problem

(bug report only)
The label of the filter menu icon displays: “column filter menu settings”. In version 12.0.0 it included the name of the column field.

1. Run this example: https://blazorrepl.telerik.com/cKFaOPvO56rcaHqx16
2. Hover a filter icon in the Grid’s header with the mouse cursor.

Current behavior

(optional)
The label “column filter menu settings” appears.

Expected/desired behavior

The label text includes the column name, e.g., “Price column filter menu settings”.

Workaround:

https://blazorrepl.telerik.com/cUPYaPlO55EJNiKJ24

Environment

  • Kendo/Telerik version: 15.0.1
  • Browser: [all]
Unplanned
Last Updated: 25 Sep 2026 12:27 by Christian
Created by: Christian
Comments: 0
Category: Editor
Type: Feature Request
1

The default system prompt in the Editor's source code instructs the AI prompt to not output HTML. This can be overriden:

<TelerikEditor @bind-Value="@Value"
                Tools="@Tools"
                EnableAIPrompt="@EnableAIPromptPanel"
                EnableInlineAIPrompt="true"
                Height="500px">
    <EditorSettings>
        <EditorInlineAIPromptSettings SystemPrompt="...Your instructions here..." />
    </EditorSettings>
</TelerikEditor>

However, even when the AI Prompt outputs HTML, on attempting to Insert/Replace that HTML in the Editor, the output is added as plain text in a paragraph element, instead of being added as HTML. It would be nice to have the option to enable inserting/replacing actual HTML. 

Unplanned
Last Updated: 24 Sep 2026 11:31 by ADMIN
Created by: Andreas
Comments: 0
Category: UI for Blazor
Type: Feature Request
3
Can you offer a Pyramid chart as in ASP.NET Ajax, otherwise we cannot upgrade our product to Blazor...
Unplanned
Last Updated: 24 Sep 2026 11:21 by ADMIN

For example in DropDownList reflection is used for binding for TextField and ValueField.

As an additional option, I'd instead to be able to do DropDownList<FooBarModel>  and then FooBarModel implements a Telerik interface IDropDownListItem (for example but use your naming conventions)

I agree you shouldn't remove the option of using TextField / ValueField but I'd like to see it as an option.

Doing the same thing in something like DataGrid I agree would be a ton more work and we'd likely require using source generation.

It seems that Microsoft / the industry is consistently recommending to phase out the use of reflection and have invested a bunch in making source generation much less of a pain and developer friendly.

 

Unplanned
Last Updated: 23 Sep 2026 12:21 by Domingos Portela
Created by: Domingos Portela
Comments: 0
Category: Diagram
Type: Bug Report
1

Bug report

Reproduction of the problem

(bug report only)
Run the following examples and click the Export button to export the Diagram:
https://blazorrepl.telerik.com/wUutGREi32uWDUbR56

https://blazorrepl.telerik.com/GgODmnEj48uNeygS34

Current behavior

(optional)

The generated PDF document contains only one page and some of the Diagram shapes are not exported.

Expected/desired behavior

The generated PDF document contains multiple pages and all the Diagram shapes are exported.

Environment

  • Kendo/Telerik version: 15.0.1
  • Browser: [all ]
Unplanned
Last Updated: 23 Sep 2026 10:02 by ADMIN
Created by: Juwon
Comments: 2
Category: DropDownButton
Type: Feature Request
7
  • I want to track when the popup element of the DropDownButton is opened and closed.
  • I also want to have an Open method via the component reference

===

ADMIN EDIT

===

For the time being, a possible option is to use the DropDownList component that exposes such events. Customize it so it can look and behave similarly to the DropDownButton.

Example implementation: https://blazorrepl.telerik.com/mekbkTPE21kwyMBU05.

Unplanned
Last Updated: 23 Sep 2026 10:02 by ADMIN
Created by: Svetoslav
Comments: 4
Category: DateInput
Type: Feature Request
30
Currently, the Date input components apply a mask to the input which restricts the user to type dates. By modifying the mask, or remove it altogether, the users will be able to freely type dates.
Unplanned
Last Updated: 23 Sep 2026 10:00 by ADMIN
In a Grid with multiple columns and InCell editing, rapid tab (quick tab key presses) eventually "jumps" the focus out of the Grid, leaves behind a cell open for editing and instead focuses another UI element on the page.
Unplanned
Last Updated: 23 Sep 2026 09:59 by ADMIN

Hello,

When a Grid is using multi column headers, and I add one more column in the OnBeforeExport event, this new column has no title in the exported file.

A possible workaround might be to use a column with zero Width and change the width in OnBeforeExport.

@using Telerik.Blazor.Common.Export.Excel
@using Telerik.Blazor.Components.Grid

<TelerikGrid TItem="@FlowRun"
             Pageable="true"
             OnRead="@GetData">

    <GridToolBar>
        <GridCommandButton Command="ExcelExport" Icon="file-excel">Export to Excel</GridCommandButton>
        <GridCommandButton Command="CsvExport" Icon="file-csv">Export to CSV</GridCommandButton>
        <label class="k-checkbox-label"><TelerikCheckBox @bind-Value="@ExportAllPages" />Export All Pages</label>
    </GridToolBar>

    <GridExport>
        <GridExcelExport FileName="telerik-grid-export" AllPages="@ExportAllPages" OnBeforeExport="@BeforeExcelExport" />
        <GridCsvExport FileName="telerik-grid-export" AllPages="@ExportAllPages" OnBeforeExport="@BeforeCsvExport" />
    </GridExport>

    <GridColumns>
        <GridColumn Field="@nameof(FlowRun.FileName)" Title="File Name" Width="300px" />
        <GridColumn Field="@nameof(FlowRun.Type)" Title="Type" Width="100px" />
        <GridColumn Field="@nameof(FlowRun.FileSize)" Title="File Size" Width="200px" />
        <GridColumn Title="Source">
            <Columns>
                <GridColumn Field="@(nameof(FlowRun.Source))" Title="MPID"/>
                <GridColumn Field="@(nameof(FlowRun.SourceFileProtocol))" Title="Type" />
            </Columns>
        </GridColumn>
        <GridColumn Field="@nameof(FlowRun.ErrorMessage)"
                    Title = "Error"
                    Width="0" />
    </GridColumns>
</TelerikGrid>

@code {
    bool ExportAllPages { get; set; }

    private async Task GetData(GridReadEventArgs args)
    {
        args.Data = Enumerable.Range(1, 10).Select(x => new FlowRun
            {
                FileName = $"File {x}",
                Type = $"Type {x}",
                FileSize = x * 2,
                Source = $"Source {x}",
                SourceFileProtocol = FileProtocol.CIX,
                ErrorMessage = $"Error {x}"
            }).ToList();

        args.Total = 100;
    }

    private void BeforeCsvExport(GridBeforeCsvExportEventArgs obj)
    {
        AddErrorMessageColumn(obj);
    }

    private void BeforeExcelExport(GridBeforeExcelExportEventArgs obj)
    {
        AddErrorMessageColumn(obj);
    }

    private void AddErrorMessageColumn(GridBeforeSpreadsheetExportEventArgs args)
    {
        args.Columns.Find(x => x.Field == nameof(FlowRun.ErrorMessage)).Width = "100px";

        //args.Columns.Add(new ExcelExportableColumn
        //{            
        //    Field = nameof(FlowRun.ErrorMessage),
        //    Title = "Error"
        //});
    }

    public class FlowRun
    {
        public string FileName { get; set; }
        public string Type { get; set; }
        public long? FileSize { get; set; }
        public string Source { get; set; }
        public FileProtocol SourceFileProtocol { get; set; }
        public string ErrorMessage { get; set; }
    }

    public enum FileProtocol
    {
        Unknown,
        PIX,
        CIX,
        SS
    }
}

Unplanned
Last Updated: 23 Sep 2026 09:59 by ADMIN
The IsEntityFrameworkProvider method in the DataSource package returns false when the provider is Entity Framework Core. 
Unplanned
Last Updated: 23 Sep 2026 09:58 by ADMIN

I have a Telerik Pager within a Telerik Grid. If I select a larger page size within the pager, then select a smaller size and do not scroll, the next time I open the pager, the dropdown portion opens in the wrong place. When I view the inspect tool, it appears that the CSS top value is not being updated when changing page sizes from bigger to smaller. Is this a Telerik limitation with the pager?
In the images, we select items per page from 10 to 25, and then we go immediately from 25 to 10 items per page. Without scrolling, we click into the drop down list again and we are able to replicate this issue.

Before: Items per page:     10 -> 25



After:    


Thank you in advance.

1 2 3 4 5 6