Unplanned
Last Updated: 10 Dec 2025 13:03 by Larry

1. User clicks the sparkled button that opens the AI window in this demo: https://demos.telerik.com/blazor-ui/grid/ai-data-operations

2. User chooses a predefined prompt suggestion, enters one via the keyboard, or uses voice access to dictate one, and clicks apply.  The operation runs successfully and returns output.

3. Now the user clicks the sparkled button again, and the AI window opens. Once open, the prompt text box fills with the previously entered request text.

How to remove or prevent the previously entered request text from filling the text box on every sequential opening of the AI window?

Unplanned
Last Updated: 05 Feb 2026 13:49 by Ed
Created by: Ed
Comments: 0
Category: Grid
Type: Feature Request
1

The Grid's CheckBoxColumn doesn't support the TextAlign property, making it impossible to center the checkbox with just Grid markup, you have to resort to a workaround.

The TextAlign property in other columns causes style="text-align: center" to be added to the underlying table cell.  This would also work for the checkbox column.

See this test:

<table class="table">
    <tr>
        <td class="table-active" style="width: 40px; text-align: center"><input type="checkbox" /> </td>
        <td>test</td>
    </tr>
</table>

Please add the TextAlign property to the CheckboxColumn.

Duplicated
Last Updated: 19 Feb 2026 10:37 by Daniel

I created a subclass of the TelerikGrid to extend the limited built-in search functionality.

To do that, I use the GridStateChanged event to rewrite the SearchFilter: I replace the default filter with a more complex CompositeFilterDescriptor (including highlighting). This works perfectly during normal interaction.

Now I also want the search to be persisted, so that after reloading the page the grid shows the same search again. Saving the grid state is not a problem, but when restoring the saved state during OnStateInit / GridStateInit, the following exception occurs:


Unable to cast object of type 'Telerik.DataSource.CompositeFilterDescriptor' to type 'Telerik.DataSource.FilterDescriptor'.
System.InvalidCastException: Unable to cast object of type 'Telerik.DataSource.CompositeFilterDescriptor' to type 'Telerik.DataSource.FilterDescriptor'.
at Telerik.Blazor.Components.Common.TableGridBase`2.LoadSearchFilter(IFilterDescriptor descriptor)
at Telerik.Blazor.Components.TelerikGrid`1.SetStateInternalAsync(GridState`1 state)
at Telerik.Blazor.Components.TelerikGrid`1.InvokeOnStateInit()
at Telerik.Blazor.Components.TelerikGrid`1.OnParametersSetAsync()
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit 'MYsaCsOgfpbyHeO0xNFpA7ViPHNUC6rpc1K9eIwVR5Y'.
System.InvalidCastException: Unable to cast object of type 'Telerik.DataSource.CompositeFilterDescriptor' to type 'Telerik.DataSource.FilterDescriptor'.
at Telerik.Blazor.Components.Common.TableGridBase`2.LoadSearchFilter(IFilterDescriptor descriptor)
at Telerik.Blazor.Components.TelerikGrid`1.SetStateInternalAsync(GridState`1 state)
at Telerik.Blazor.Components.TelerikGrid`1.InvokeOnStateInit()
at Telerik.Blazor.Components.TelerikGrid`1.OnParametersSetAsync()
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)

I also tried saving the search term and the selected columns separately and then restoring the state in OnAfterRender, but at that point the SearchFilter can no longer be set.


How should I approach this? Is there a supported way to persist and restore a custom CompositeFilterDescriptor as the grid’s search filter (or otherwise restore the search state) without triggering this cast exception?

 

Sincerly Daniel

 

 

Unplanned
Last Updated: 16 Feb 2026 14:45 by Marc
Created by: Marc
Comments: 0
Category: Grid
Type: Feature Request
1

The following KB article shows a workaround for removing the Grid aggregate labels ("Sum" and "Count") from the exported Excel document: https://www.telerik.com/blazor-ui/documentation/knowledge-base/grid-remove-aggregate-labels-in-excel-footr

It would be nice to have this option as a parameter in the Grid. It would allow to toggle on/off this behavior, instead of having to rely on custom code to work around it. 

Or in the OnBeforeExport method, add extra data to GridBeforeExcelExportEventArgs that contains the aggregates so they can be changed.

 private async Task OnBeforeExcelExport(GridBeforeExcelExportEventArgs args)
 {
     await Task.CompletedTask;

     // Loop through all columns and fix the footer aggregate values
     // Replace the default "Sum: 1234.56" text with just the decimal number
     foreach (var column in args.Columns)
     {
         if (column.HasAggregate)
         {
             // Set the number format for the column so Excel treats it as a number
             column.Aggregate.Field.Value == "MyNewValue";
         }
     }
 }
Unplanned
Last Updated: 18 Mar 2026 13:09 by ADMIN
During a recent penetration test on our Blazor application that uses Telerik Blazor UI components, a security finding was reported regarding the possibility of Excel macro injection through exported Excel files generated via the Telerik Excel Export feature. 
We would like Telerik to implement built‑in safeguards to automatically neutralize potential macro injection vectors.

The penetration test revealed that it is currently possible to insert values beginning with Excel formula metacharacters—such as =, +, -, and @—into fields that are later exported using Telerik’s Excel Export functionality.
In older versions of Microsoft Excel, these values may be interpreted and executed as formulas when users open the exported file. Even though newer Excel versions often warn users, this still presents a security concern and may violate corporate export or data‑handling policies.

See also this blogpost: https://blog.securelayer7.net/how-to-perform-csv-excel-macro-injection/

The Telerik Excel Export functionality should include an option to automatically sanitize or escape values that may pose a risk of Excel macro or formula injection.
- Automatic escaping of formula-starting characters: Prepend a single quote (') to any exported value beginning with: '=', '+', '-', '@'.
- Optional configuration flag to enable/disable this behavior, for example: <GridExcelExportSettings EscapeFormulas="true" />

While we can implement a workaround in our own application code, we believe this is a security concern that many customers may encounter, and therefore a native solution within the Telerik framework would be highly valuable.

We kindly request that Telerik consider adding a built‑in mechanism to protect against Excel macro injection in exported files. This would improve security, reduce custom development work, and strengthen the reliability of Telerik’s Blazor export functionality.
Unplanned
Last Updated: 16 Mar 2026 07:28 by Michal
Please expose built-in Grid ToolBar tools like GridToolBarButtonTool and GridToolBarToggleButtonTool that are used for custom actions and have an OnClick handler. Unlike the current custom Grid ToolBar tools, these new built-in tools will be able to show in the Grid ToolBar's overflow menu when the available horizontal space is limited.
Unplanned
Last Updated: 16 Mar 2026 07:31 by Michal
Created by: Michal
Comments: 0
Category: Grid
Type: Feature Request
1
Please expose an Enabled parameter for all built-in GridToolBar tools. When set, the parameter will override the default behavior for the built-in tools that manage their enabled state internally (such as Edit, which enables only when there is a selected row).
Unplanned
Last Updated: 19 Mar 2026 15:27 by Peter

Bug report

Reproduction of the problem

Possibly related to https://github.com/telerik/blazor/issues/2594

  1. Run this example: https://blazorrepl.telerik.com/wAkdbZPo47oCuV5G32
  2. Without scrolling the Grid horizontally resize a non-locked column (e.g., In Stock)

Current behavior

(optional)

The first locked column (ID) is rendered after the second locked column (Product Name). When you resize a non-locked column, the ID column disappears and is revealed at its new position after you scroll the Grid horizontally.
The behavior is reproducible with RTL enabled.

Expected/desired behavior

The order of the locked columns should persist.

Environment

  • Telerik version: 13.0.0
  • Browser: [all]
Declined
Last Updated: 28 Apr 2019 05:28 by ADMIN
Created by: Mark
Comments: 5
Category: Grid
Type: Bug Report
0

The TelerikGrid never loads any data. the app just hangs. 

I copied the Telerik sample from the online demo. 

 The HTML table loads perfectly.

 Using VS 2019  16.1.0 Preview 2.0.

Acquired Telerik nuget package directly from Telerik feed.

 

 

 

    <TelerikGrid Data=@ViewModel.GetCorePharmacies() Height="300">
        <TelerikGridColumns>
            <TelerikGridColumn Field="ID" Title="NCPDP#" />
            <TelerikGridColumn Field="NPINumber" Title="NPI#" />
            <TelerikGridColumn Field="DBAName" Title="Pharmacy" />
            <TelerikGridColumn Field="StoreNumber" Title="Store#" />
        </TelerikGridColumns>
    </TelerikGrid>

    @*<table class="table">
        <thead>
            <tr>
                <th>NCPDP</th>
                <th>NPI</th>
                <th>DBA Name</th>
                <th>Store#</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var pharmacy in ViewModel.GetCorePharmacies())
            {
                <tr>
                    <td>@pharmacy.ID.ToString()</td>
                    <td>@pharmacy.NPINumber.ToString()</td>
                    <td>@pharmacy.DBAName</td>
                    <td>@pharmacy.StoreNumber</td>
                </tr>
            }
        </tbody>
    </table>*@

 

Any thoughts. 

Completed
Last Updated: 21 May 2019 10:53 by ADMIN
Release 1.1.0
I have a Grid control with columns set as editable= false.  When I click a row into edit mode all the columns still appear as editable. Is there something else that needs to be set?
Completed
Last Updated: 03 Jul 2019 11:48 by ADMIN
Release 1.3.0

Super low priority and super nit picky ... The command buttons on the Blazor Grid have extra space after the icon if you leave the name blank. Either remove the space or center the icon when no name is entered.

 

      

Completed
Last Updated: 08 Jul 2019 15:49 by ADMIN
Release 1.3.0

Dear Telerik,

i have a TelerikGrid with a TelerikGridColumn bound to a Decimal field.

The property  Editable="true" is set.

I can edit the number , but only 1 number at te time.
If I type one number, the edit-cell is closed immediately.

If I want to input the number 1000 , I habe to click the cell 4 times for each number . I cannot type 1000 in one action.

The problem does not occur with a String column.

Regards,

Gert


Duplicated
Last Updated: 02 Mar 2020 13:27 by ADMIN

Hello,

I'm trying the grid component and I'm able to add a row to the grid using the embbed editor. But I wanted to add an item externally to the list:


<button @onclick="@MyClick">Add item</button>

 

void MyClick()
{
    MyData.Add(new SampleData() { ID = 46, Name = "from click" });
    StateHasChanged();
}

The new line does not appear on the grid but if I add a second item through the embbed editor then I get the 2 items!

I also try to replace the List<MyData> by an ObservableCollection<MyData> unsuccessfully.

 

Thanks & regards,

 

Duplicated
Last Updated: 02 Mar 2020 13:24 by ADMIN
Created by: Shaun
Comments: 1
Category: Grid
Type: Bug Report
0

Here is how this page looks on mac, multiple browsers: https://demos.telerik.com/blazor-ui/grid/grouping

 

 

Notice that the columns are misaligned.  I believe this is because the scrollbar isn't rendered on a mac if it is "disabled" (there is nothing to scroll). 

Probably the best solution would be for it to render like this on all browsers, but have the columns line up (get rid of the spacer in the end of the header row) as the 'empty' scrollbar is not attractive :)

Declined
Last Updated: 01 Oct 2019 10:05 by ADMIN

Telerik Blazor version 1.5.0 Trial

Steps to reproduce:

  1. Open a page with a grid in incell edit mode, e.g. https://demos.telerik.com/blazor-ui/grid/editing-incell
  2. Put the cursor in the Name field of the first row and edit the just the Name field, do not click out of the cell or cause it to lose focus, do not edit any other cells first
  3. Press the Add button
  4. The grid will update the dataset and the edit you made is shown in the grid
  5. Press the Add button
  6. Enter the all of the data for the row, but do not press the row's 'Update' button
  7. Press the Add button again
  8. The new data you added is lost

This behaviour is inconsistent as the user is required to press the Update button to save a new row, but not to save changes for an existing row.  Can the grid be made to retain the new row when the Add button is pressed (or can we have that option)?

I think the base issue here is that the new row isn't added automatically when the cell/row loses focus.  The same issue therefore occurs if you press one of the page buttons at the bottom of the grid at step 3 instead.

 

 

Declined
Last Updated: 01 Oct 2019 10:04 by ADMIN
Created by: Neil Jackson
Comments: 4
Category: Grid
Type: Bug Report
0

Hi,

I cant see what it is that's causing this error. evertime i run my app, i get the follwoing error below:

An unhandled exception occurred while processing the request.

InvalidOperationException: Object of type 'Telerik.Blazor.Components.Grid.TelerikGrid`1[[BlazorApp1.Core.DTO.AuditEventTypeDTO, BlazorApp1.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' does not have a property matching the name 'ChildContent'.

Microsoft.AspNetCore.Components.Reflection.ComponentProperties.ThrowForUnknownIncomingParameterName(Type targetType, string parameterName

 

My Code:

@page "/Table"

@inject IPurchaseOrderRepository purchaseOrderRepository
@using Telerik.Blazor.Components.Grid
    <h3>Table</h3>

<TelerikGrid Data=@auditEventTypeDTOs>
    <TelerikGridColumn Field="AuditEventName">

    </TelerikGridColumn>
</TelerikGrid>


@code{



    public IEnumerable<AuditEventTypeDTO> auditEventTypeDTOs { get; set; }

    protected override async Task OnInitializedAsync()
    {
        auditEventTypeDTOs = await purchaseOrderRepository.GetAllAuditEventTypes();
    }

}

 

 

The IEnumerable object 'auditEventTypeDTOs' is getting the data from the repository and i've made sure that i don't have any component with the same name within Telerik.blazor namespace.

 

Do let me know if you need me me to supply more information.

 

many thanks in advance

 

George.

Completed
Last Updated: 12 Sep 2019 04:55 by ADMIN
I have NEVER seen a real world UI with a DropDownList in a Grid where you didn't want to save the ValueField of the DropDownList (ex. Product ID), but also wanted to display the TextField (ex. Product Name) as well as sort and filter by the TextField.  This functionality should be part of the grid and the default behavior for DropDownLists.
Completed
Last Updated: 30 Oct 2019 14:56 by ADMIN
Release 2.3.0
Put the snippet in the index page

Expected: the grid has data

Actual: the grid has no data, it shows up after a data source operation like filter/group

Sample:

@using ClientApp.Shared
@inject HttpClient Http

<TelerikGrid Data=@forecasts Height="550px"
                Pageable="true" Sortable="true"
                PageSize="20" Groupable="true">
    <GridColumns>
        <GridColumn Field="Date">
            <Template>
                @((context as WeatherForecast).Date.ToString("dddd, dd MMM yyyy"))
            </Template>
        </GridColumn>
        <GridColumn Field="TemperatureC" Title="Temp. C" />
        <GridColumn Field="TemperatureF" Title="Temp. F" />
        <GridColumn Field="Summary" />
    </GridColumns>
</TelerikGrid>

@code {

    //List<WeatherForecast> forecasts { get; set; } = new List<WeatherForecast>(); // Works fine!


    List<WeatherForecast> forecasts { get; set; } //Need to sort a field to show the rows

    protected override async Task OnInitializedAsync()
    {
        //forecasts = new List<WeatherForecast>(); //this helps

        forecasts = await Http.GetJsonAsync<List<WeatherForecast>>("WeatherForecast");

        //these do not help
        //await Task.Delay(200);
        //StateHasChanged();
    }
}

Completed
Last Updated: 09 Dec 2019 15:10 by ADMIN
Release 2.5.1

I had a working server-side Blazor project that was working, but a problem appears to have begun without me changing any code. I upgraded to the latest version (2.4.0) and am having the same problem.

The SelectedItemsChanged event is not working when a checkbox is checked. If I click outside the checkbox in the same column, the event fires however.

I see similar behavior on your own demo page, so this seems like a bug: https://demos.telerik.com/blazor-ui/grid/selection Check some products on that grid and the selected items do not change below. I've tested this in Vivaldi and Edge.

Thanks,
Sean

Duplicated
Last Updated: 02 Mar 2020 13:15 by ADMIN
Created by: Krister Svärd
Comments: 1
Category: Grid
Type: Bug Report
0

Hello!

The multiple selection functionality in the grid no longer works as expected.

The select check boxes doesn't seem to do anything and the only way to select something is when clicking on the actual row.

The problem is also present on your demo page.

ADMIN EDIT: Duplicate of https://feedback.telerik.com/blazor/1443720-selection-does-not-work-when-clicking-on-the-checkbox-works-when-clicking-the-row

 

https://demos.telerik.com/blazor-ui/grid/selection?_ga=2.224802330.1814754023.1575533932-806712588.1566825973&_gac=1.19805898.1574257348.Cj0KCQiA5dPuBRCrARIsAJL7oejqGKCIKhHZYlO3abQIbwwTOsvIVlWTqJ7CCdov38W-l8cArPTRpjEaAt0jEALw_wcB

Best regards.