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]
Unplanned
Last Updated: 19 Mar 2026 14:46 by Clifton
Specifically, if the div mentioned in the error does not have tabindex=1, tabbing from the header causes the browser to focus that area, which is not the expected behavior. Ideally, the focus should move to the first cell, as that intermediate area is not user-interactive.

On the other hand, if tabindex=-1 is used, tools like Аxe and Lighthouse report errors. Removing the tabindex attribute altogether still results in errors, and the browser continues to focus that area.

We are actively exploring possible approaches to address this, but at the moment, there is no immediate solution we can apply without side effects.
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: 18 Mar 2026 08:35 by ADMIN

If LoadGroupsOnDemand="false", I am able to programmatically expand the groups through the state. However, this is not possible when loading group data on demand.

Please allow programmatically expanding the groups when LoadGroupsOnDemand="true". This should go together with an event (OnStateChanged?) that will fire when LOD groups are expanded or collapsed.

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: 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: 13 Mar 2026 07:42 by ADMIN
Created by: Humayoon
Comments: 4
Category: Grid
Type: Feature Request
17

Hi,

I would like to have a Expand/Collapse All Grid Groups button in the Grid Header. I know this is possible to do so programmatically outside of the grid but my users want it inside the Grid. 

Thanks,

Humayoon

Unplanned
Last Updated: 11 Mar 2026 11:17 by Edo

Description

A column cannot be reordered by dragging beyond the currently visible columns of the Grid. This significantly limits the column reorder functionality only to the visible viewport.

Steps To Reproduce

  1. Run this example: https://blazorrepl.telerik.com/QqudFlYZ18zv7Gv547
  2. Drag a column header to the right border of the Grid.

Actual Behavior

The Grid does not scroll horizontally while the column is dragged.

Expected Behavior

The Grid scrolls horizontally while dragging the column and allows dropping it beyond the currently visible columns.

Browser

All

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

No response

Unplanned
Last Updated: 20 Feb 2026 12:17 by Amanatios Amanatidis
Created by: Amanatios Amanatidis
Comments: 0
Category: Grid
Type: Bug Report
3

Description

When clicking a Grid row and the Grid is in GridDataLayoutMode.Stacked mode, the RowClick event fires twice.

Steps To Reproduce

  1. Run this example: https://blazorrepl.telerik.com/QgkmvDvQ296Ea3Ij28
  2. Click a row in the Grid

Actual Behavior

The RowClick event fires twice.

Expected Behavior

The RowClick event fires once.

Browser

All

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

No response

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: 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.

Unplanned
Last Updated: 28 Jan 2026 08:29 by Alex
Created by: Alex
Comments: 0
Category: Grid
Type: Feature Request
3

I want to reorder the Grid rows the same way I can reorder the columns - via the keyboard.

For reference: Telerik jQuery Grid drag and drop

Unplanned
Last Updated: 22 Jan 2026 12:24 by Alex
If the Sortable parameter is set to true, the focus after the toolbar goes to the first header cell. If the Sortable parameter is set to false, the focus skips the first header cell.
Unplanned
Last Updated: 22 Jan 2026 12:04 by Stephan

Column headers and column data do not match after reordering. 

See this example: https://blazorrepl.telerik.com/GKkFcwlF54CvZoVp34 

1. Reorder Group 1 and Group 2.

2. The column headers within these 2 groups are not reordered with their parent.

Reordering should work according to the rules specified in the documentation: https://www.telerik.com/blazor-ui/documentation/components/grid/columns/multi-column-headers#reordering

Unplanned
Last Updated: 21 Jan 2026 11:13 by ADMIN
Created by: Michal
Comments: 1
Category: Grid
Type: Bug Report
0

Hello,

 there is inconsistency/behaviour/order in events of the Grid: OnStateInit and OnRead. Which leads to scenario with no clear sollution and would be nice to fix it, and how to solve it as "hotfix".
Also i think its not new in 12.x. release, it exists longer ;)


<TelerikGrid TItem="GData" @ref="gHL" OnRead=@GReadItems OnStateInit="@OnStateGHL"> ... <GridAggregates> @if(1==2){...} </GridAggregates> @code{ protected async Task GReadItems(GridReadEventArgs args) { **hack for C) if(gHL==null)return;//state init AVOID 2x call gread PRIOR OnStateInit

...// must be called: args.AggregateResults = rr.ToDataSourceResult(args.Request).AggregateResults;

... } void OnStateGHL(GridStateEventArgs<GData> args) //or async Task doesnt matter { //default SORTing:args.GridState = new GridState<GData> { SortDescriptors = new List<Telerik.DataSource.SortDescriptor> { new Telerik.DataSource.SortDescriptor{ Member = nameof(GData.DatPorizeni), SortDirection = Telerik.DataSource.ListSortDirection.Descending }, //new Telerik.DataSource.SortDescriptor{ Member = nameof(GData.Skupina), SortDirection = Telerik.DataSource.ListSortDirection.Ascending } } }; } }


Problematic scenarios, single page, same grid:

A) when NO aggregates markup EXISTS at all
1. OnStateInit
2. OnRead  - gHL IS NULL
=OK

B) when EMPTY aggregates markup EXISTS
1. OnRead
2. OnStateInit
=FAIL
HOW to read and ui data with correct STATE?
https://www.telerik.com/blazor-ui/documentation/components/grid/state

cannot call gHL.rebind, also gHL is null
NONE initinal "sorting,filtering etc" is set, WRONG data,columns,displayed to the user


C) when SOME real aggregates markup EXISTS
1. OnRead
2. OnStateInit
3. OnRead
=partial FAIL("**hack used"), but managed by if(gHL==null)return


D) "hotfix" used with  GridAggregates="@( HasAggregates ? GridAggregatesTemplate : null )"
act as A or C, but gHL is always null, which is also bad againts C)

Expected:
ALWAYS only A) - First 1.OnStateInit THEN 2.OnRead. its the best one, without any additional hacks = UNIFY the event orders and behaviour.
OR
A) or C)
everything else is unmanagable.
 Especially when initial sorting "is must" and aggregates,columns and so on, are managed by user(non static)
B) is completly WRONG: incorrect event order of OnStateInit and OnRead
D) is againts C) (cannot detect reference of gHL)

related to:
https://feedback.telerik.com/blazor/1654029-onstateinit-does-not-fire-if-gridaggregates-exists-but-is-empty

https://www.telerik.com/forums/grid-onstateinit-event-and-onread-event-chaos

OR how to solve it generally = what is the way to LOAD gridState, and after that, LOAD Data by defined GridState?

Thanks

Unplanned
Last Updated: 15 Jan 2026 07:28 by ADMIN
Created by: Andrew
Comments: 4
Category: Grid
Type: Bug Report
4

Description

When going fast over the Grid rows with the mouse cursor, the rows are highlighted after a delay. The delay is more noticeable on higher resolutions (2560x1440 or higher).

Steps To Reproduce

  1. Hover the first Grid row and move the mouse cursor towards the last row (or vice versa).

Actual Behavior

In the app that targets .NET10 the row hover styles are applied with a delay, whereas in the app that targets .NET8 the hover styles are applied as soon as the mouse enters the boundaries of a row.

Expected Behavior

Similar performance in applying hover-related styles.

Browser

All

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

No response

Unplanned
Last Updated: 08 Jan 2026 15:37 by ADMIN

I am resetting the Grid State by calling Grid.SetState(null). This doesn't reset ColumnState<T>.Locked boolean to false and the columns remain locked.

---

ADMIN EDIT

---

A possible workaround for the time being is to additionally loop through the ColumnStates collection of the State and set the Locked property to false for each column.

Example: https://blazorrepl.telerik.com/QTYmkpvb49c6CPxa42

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: 02 Dec 2025 23:26 by Tyler
Created by: Brian
Comments: 6
Category: Grid
Type: Feature Request
29
I would like to use the endless scrolling feature (like in the Telerik UI for jQuery) with the Telerik Blazor Grid.
Unplanned
Last Updated: 02 Dec 2025 12:47 by simeon

When triggering Grid edit mode through the Grid state and the component is using adaptive mode, the edit form doesn't show.

Possible workarounds include:

1 2 3 4 5 6