In Development
Last Updated: 29 Aug 2025 11:43 by ADMIN
Scheduled for 2025 Q4 (Nov)

We are experiencing an issue where the ExportToPdfAsync() method on TelerikGrid is returning Excel data (XLSX format) instead of PDF data. This is causing MIME type errors when trying to process the exported data as a PDF.

 

===ADMIN EDIT===

Workaround

In the meantime, a possible workaround would be to use the document processing library (make sure the correct packages are installed for it) and import the xlsx file to a workbook, and then export the workbook to PDF. Here is an improvised example that demonstrates this by saving the file in your wwwroot folder as a pdf.

@inject IWebHostEnvironment HostingEnvironment

<TelerikGrid Data="@bookList" Height="75svh" Resizable="true" Sortable="true" Pageable="true" PageSize="15"
             FilterMode="@GridFilterMode.FilterMenu" SelectionMode="@GridSelectionMode.Multiple"
             SelectedItems="@SelectedBooks" @ref="@BookGrid"
             SelectedItemsChanged="@((IEnumerable<BookInfo> sel) => OnRowSelect(sel))">
    <GridToolBarTemplate>
        <TelerikButton OnClick="@GenerateReport">Generate PDF</TelerikButton>
    </GridToolBarTemplate>
    <GridExport>
        <GridPdfExport AllPages="true" PageOrientation="GridPdfExportPageOrientation.Landscape"
                       PaperSize="GridPdfExportPaperSize.A3" />
    </GridExport>
    <GridColumns>
        <GridCheckboxColumn CheckBoxOnlySelection="true"></GridCheckboxColumn>
        <GridColumn Field="ISBN">
            <HeaderTemplate><b>ISBN</b></HeaderTemplate>
        </GridColumn>
        <GridColumn Field="Author">
            <HeaderTemplate><b>Author</b></HeaderTemplate>
        </GridColumn>
        <GridColumn Field="Title">
            <HeaderTemplate><b>Title</b></HeaderTemplate>
        </GridColumn>
        <GridColumn Field="Genre">
            <HeaderTemplate><b>Genre</b></HeaderTemplate>
        </GridColumn>
        <GridColumn Field="PublishedYear">
            <HeaderTemplate><b>Year</b></HeaderTemplate>
        </GridColumn>
        <GridColumn Field="CopiesAvailable">
            <HeaderTemplate><b>Copies</b></HeaderTemplate>
        </GridColumn>
    </GridColumns>
</TelerikGrid>

@code {
    private async Task GenerateReport()
    {
        isLoading = true;
        var pdfStream = await BookGrid.ExportToPdfAsync();

        // The stream is actually XLSX, so convert it to PDF
        using var ms = new MemoryStream(pdfStream.ToArray());

        var xlsxProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider();
        var workbook = xlsxProvider.Import(ms);

        var rootPath = HostingEnvironment.WebRootPath;
        var saveLocation = Path.Combine(rootPath, "LibraryBooks.pdf");
        var pdfProvider = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.PdfFormatProvider();
        using (var fileStream = new FileStream(saveLocation, FileMode.Create))
        {
            pdfProvider.Export(workbook, fileStream);
        }
    }

    public class BookInfo
    {
        public string ISBN { get; set; }
        public string Author { get; set; }
        public string Title { get; set; }
        public string Genre { get; set; }
        public int PublishedYear { get; set; }
        public int CopiesAvailable { get; set; }
    }

    private List<BookInfo> bookList = new()
    {
        new BookInfo { ISBN = "978-0451524935", Author = "George Orwell", Title = "1984", Genre = "Dystopian", PublishedYear = 1949, CopiesAvailable = 4 },
        new BookInfo { ISBN = "978-0439139601", Author = "J.K. Rowling", Title = "Harry Potter and the Goblet of Fire", Genre = "Fantasy", PublishedYear = 2000, CopiesAvailable = 7 },
        new BookInfo { ISBN = "978-0140449266", Author = "Homer", Title = "The Odyssey", Genre = "Epic Poetry", PublishedYear = -800, CopiesAvailable = 2 }
    };

    private TelerikGrid<BookInfo> BookGrid;
    private List<BookInfo> SelectedBooks = new();
    private bool isLoading = false;

    private void OnRowSelect(IEnumerable<BookInfo> selected)
    {
        SelectedBooks = selected.ToList();
    }
}

 

Unplanned
Last Updated: 28 Aug 2025 10:56 by Mattia
Created by: Mattia
Comments: 0
Category: Grid
Type: Bug Report
0

Description

Regression introduced in version 10.0.0.

Steps To Reproduce

  1. Run this example: https://blazorrepl.telerik.com/GJkCGCvE51aGglud38
  2. Filter a Grid column and observe the log below the component.

Actual Behavior

The OnStateChanged event fires 4 times

Expected Behavior

The OnStateChanged event fires 2 times (see https://www.telerik.com/blazor-ui/documentation/components/grid/state#onstatechanged).

Browser

All

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

9.1.0

Unplanned
Last Updated: 19 Aug 2025 21:44 by Luke
Created by: Nate
Comments: 4
Category: Grid
Type: Feature Request
8

Similar to the WPF grid I would like the option to require the user hold shift to sort by multiple columns, otherwise the grid would sort by only a single column.

https://docs.telerik.com/devtools/wpf/controls/radgridview/sorting/multiple-column-sorting

Unplanned
Last Updated: 13 Aug 2025 08:32 by ADMIN
Created by: Taarti
Comments: 2
Category: Grid
Type: Bug Report
26

In the case of a sorted column, NVDA is not narrating the correct column name and narrating the incorrect Roles for the column headers.

In the case of an unsorted column, NVDA is narrating the column name twice and repeating the information.

Unplanned
Last Updated: 06 Aug 2025 13:06 by Michael
If you set a given column's Groupable/Sortable/Filterable parameter to false, it will still appear in the toolbar tools list of columns.
Completed
Last Updated: 05 Aug 2025 10:11 by ADMIN
Release 2025 Q3 (Aug)
Currently, users can cancel editing either by clicking the "Cancel" button, the `X` button in the popup header, or by pressing the Esc key. The expectation is that all three actions should trigger the `OnCancel` event.
Unplanned
Last Updated: 30 Jul 2025 07:58 by Stephan
I want to expand a specific section within the column menu, such as the filter, column chooser, or column position section, when the menu is opened. 
Declined
Last Updated: 30 Jul 2025 07:39 by ADMIN
Created by: Marco
Comments: 1
Category: Grid
Type: Feature Request
1

Hy,

It is possible to have default color themes (Primary,Dark,Info,Error,...) for Telerik Blazor Grid component as well without having to change the color by css overriding?

Unplanned
Last Updated: 29 Jul 2025 06:17 by ADMIN
Created by: Toni
Comments: 11
Category: Grid
Type: Feature Request
22
Hi, How can i store and retrieve the PageSize of a Grid in the GridState? It seems that this is missing in GridState?
Completed
Last Updated: 25 Jul 2025 16:48 by ADMIN
Release 2025 Q1 (Feb)

The issue targets a Grid with cell selection and DragToSelect feature disabled where at least one column has Visible="false". With this configuration, when using Shift + Click to select multiple cells, the result is a mismatch in the cells that should be selected, after the position where the invisible column is placed.

Video reproduction attached. Reproduction code: https://blazorrepl.telerik.com/GyFuQwPf37H8riAM19.

Completed
Last Updated: 24 Jul 2025 07:25 by ADMIN
Release 2025 Q3 (Aug)

After filtering a nullable int column, the SelectAll checkbox in the GridCheckboxColumn stops working.

Reproduction example: https://blazorrepl.telerik.com/mTuyHaYM44sLH2yf05

Unplanned
Last Updated: 22 Jul 2025 15:10 by ADMIN
The arguments within the OnDrop event are incorrectly calculated when a hierarchical grid row is expanded. This is likely because the expanded detail zone is being mistaken for a data row by the drag-and-drop algorithm.
Completed
Last Updated: 22 Jul 2025 05:55 by ADMIN
Release 2025 Q3 (Aug)
Created by: Alexander
Comments: 0
Category: Grid
Type: Bug Report
2

The focus indicator on the GridSearchBox is broken when using an outline themes like A11Y, Bootstrap etc.

Workaround:

Temporarily override the overflow style on .k-toolbar-items (e.g., overflow: unset;) using custom CSS to restore the focus indicator.

Declined
Last Updated: 09 Jul 2025 10:16 by ADMIN
Created by: Rob
Comments: 3
Category: Grid
Type: Bug Report
0

Grid OnRead .Clear() Issue

With the following component:

@page "/counter"
@using System.Collections.ObjectModel
General grid with its most common features
<TelerikGrid Data="@MyData" Pageable="true" @bind-Page="page" PageSize="5" TotalCount="30" OnRead="@ReadItems" >
    <GridColumns>
        <GridColumn Field="@(nameof(SampleData.Id))" Width="120px" />
        <GridColumn Field="@(nameof(SampleData.Name))" Title="Employee Name" Groupable="false" />
        <GridColumn Field="@(nameof(SampleData.Team))" Title="Team" />
        <GridColumn Field="@(nameof(SampleData.HireDate))" Title="Hire Date" />
    </GridColumns>
</TelerikGrid>

@code {
    public List<SampleData> MyData { get; set; } = new List<SampleData>();
    //public ObservableCollection<SampleData> MyData { get; set; } = new ObservableCollection<SampleData>();
    private int page = 1;

    private void ReadItems(GridReadEventArgs args)
    {
        //MyData = new List<SampleData>();  //OK!
        //MyData = new ObservableCollection<SampleData>(); //OK!
        MyData.Clear();  //List: No update. ObservableCollection: System.StackOverflowException!
        Populate();
        StateHasChanged();
    }

    private void Populate()
    {
        foreach (var data in Enumerable.Range((page - 1) * 5, 5).Select(x => new SampleData
        {
            Id = x,
            Name = "name " + x,
            Team = "team " + x % 5,
            HireDate = DateTime.Now.AddDays(-x).Date
        }))
        {
            MyData.Add(data);
        }
    }

    public class SampleData
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Team { get; set; }
        public DateTime HireDate { get; set; }
    }
}

I see the issues in the comment fields.  Changing OnRead to async makes no difference.  

The workaround is to assign a new List or ObservableCollection instead of using .Clear()

Duplicated
Last Updated: 09 Jul 2025 08:24 by ADMIN
Created by: Alexander
Comments: 0
Category: Grid
Type: Bug Report
2

Refreshing the Grid data frequently may cause performance issues.

Completed
Last Updated: 30 Jun 2025 11:27 by ADMIN
Release 2025 Q3 (Aug)
Created by: Eric
Comments: 12
Category: Grid
Type: Feature Request
35

Hi - this one is a feature request, not a bug. :)

 

For the filter menu, when you enter a filter value, it would be nice if you could press enter to execute the filter instead of having to click "Filter."

 

Completed
Last Updated: 27 Jun 2025 11:29 by ADMIN
Release 2025 Q3 (Aug)
Created by: loe
Comments: 2
Category: Grid
Type: Feature Request
35
I want to be able to programmatically trigger the "Add" Command and have the new row displayed as the last item of the grid page.
Unplanned
Last Updated: 27 Jun 2025 08:29 by ADMIN

When enabling resizing and reordering for the Telerik Grid, using `MinResizableWidth` to set minimal column width will apply the constraint to the column position rather than the actual movable column. This means applying a min width of 200px to the first column will work as expected until the column is moved to another position. Now the column in question no longer has the min width applied, and the column that has moved into the first position has the 200px min width constraint. 

It appears this is due to the constraint being applied to the `data-col-index` rather than the `data-col-initialization-index`, or something to that effect.

The following example has a 200px min-width constraint applied to the "Name" first column, and no custom min-with applied to "Address" second column. Switching the columns by moving the "Name" after the "Address" will apply the constraint to the "Address" and not the "Name".

https://blazorrepl.telerik.com/QJEAcuPE41L7Uhiw44

Currently using 7.1.0 but looks to be an issue in later versions as shown by the REPL example. Tested in Firefox and Chrome.

The column position is arbitrary and the bug isn't due to the constraint being applied to the 0 column, applying the constrain to all even columns then shuffling would result in the constrain still being applied to all even columns.

Unplanned
Last Updated: 26 Jun 2025 07:19 by Andrea
There is an order to the grouping level - field1, field2 and so on - I would like that current index in that order exposed by the grouping templates so I can know in which position they are and whether/how far they are nested.
Unplanned
Last Updated: 24 Jun 2025 19:21 by Albert

The scenario is:

In this case, the Grid should not try to create or clone an edit item on its own. Instead, it should rely on the returned instance from OnModelInit. However, the Grid first fires OnModelInit and then it still tries to clone or create an edit item, which causes an exception.

A possible workaround is to manage the whole edit process manually, similar to the example with ListView popup editing.

1 2 3 4 5 6