Completed
Last Updated: 05 Aug 2024 13:31 by ADMIN
Release 6.1.0

Reproduceable example: https://blazorrepl.telerik.com/QSEganvg12BVw2ZU37

Steps to reproduce:

  • Add a TelerikGrid to the page - most properties on the grid do not matter for this issue
  • Implement the OnStateInit event
  • Define the GridAggregates render fragment within the TelerikGrid, but leave it empty - do not put any components inside it
  • When the page initializes, note that OnStateInit is never fired

If you remove the GridAggregates emtpy render fragment, or put at least one GridAggregate component in it, OnStateInit fires like expected.

In my project, I've created a component that wraps around the TelerikGrid that I use on all my pages, so that I can have many properties and functions set to reasonable defaults for my use case. My component has an option to conditionally include GridAggregate components within the inner TelerikGrid's GridAggregates render fragment based on separate configuration. If no separate configuration is provided, no GridAggregate components are included, and the GridAggregates render fragment is left blank. Since my component is built in razor markup, there isn't a great option for nulling out that render fragment if it's empty. I had no problems with this exact same code in UI for Blazor version 5.1, and I hope this can be fixed.

Completed
Last Updated: 05 Aug 2024 13:31 by ADMIN
Release 6.1.0
When you have a Navigable Grid with a Material theme, the sorting on each click does not work. You have to click outside of the header and click again in it to sort. The behavior can be seen only in version 6.0.0.
Duplicated
Last Updated: 31 May 2024 10:20 by ADMIN

Hi,

 documentation missing one extremely "silent" breaking change in grid data binding.

When binding/refreshing(subsequent reload) data to VARIABLE, there is "random" need to call grid.Rebind(); Mostly, when data are loaded outside of the grid, ie by some button, or another component. Used together with selected items and grouping enabled.


<TelerikGrid Data="@GridData" SelectionMode="GridSelectionMode.Single" SelectedItems="..."
						 OnRowClick="@...r"  @ref="GHL" ....>

 

prior v6.0, everything is OK:

protected async Task ReloadGrid(int? xid)
{

GridData= await LoadDatafromservice<TItem>...;

}

After upgrading same code, it silently not displaying data or cras.

new breaking behavior at v6.0  - hotfix, but "ugly one":

protected async Task ReloadGrid(int? xid)
{

GridData= await LoadDatafromservice<TItem>...;

GHL.Rebind(); //required, otherwise grid content(rows) is not update. Later the grid crash when selecting row etc. Old "rows" are still displayed;

}

Its weird to gues, where rebind is needed and where not. Previous versions acting as expected(async - task = no problem).
Make it documented, "what is correct" and when.

Or if it is a bug, please move it out from feature request.

Thanks

Unplanned
Last Updated: 22 May 2024 16:23 by Anthony
Created by: Anthony
Comments: 0
Category: Grid
Type: Feature Request
1

Could there be an option to NOT close the filter dropdown when the clear button is pressed? Is there an AutoClose parameter or something else?

I just got a request for this, and their thought is they will have a filter set, then want to click clear, and then still pick new items to filter before leaving the dropdown.

Also, watching it on a touch device made it especially painful.
Completed
Last Updated: 05 Aug 2024 13:31 by ADMIN
Release 6.1.0
Since Telerik UI for Blazor 6.0.0 if I have defined aggregates and I load the Grid's data with async method the data never loads in the Grid. 
Unplanned
Last Updated: 15 May 2024 13:53 by Juan Angel
If the data contains special double values (such as double.NaN or double.PositiveInfinity) and the Grid uses aggregates, it throws with:

Error: System.OverflowException: Value was either too large or too small for a Decimal.

Unplanned
Last Updated: 21 May 2024 15:31 by ADMIN

Hi,

 when using SetStateAsync(), OnRead is called ok, but loading indicator is not presented as usual.

How to reproduce:

1. button = loading data by SetStateAsync(), no progress indicated.

2. button = loading data throught rebind, is ok

demo in repl

demo is based on https://docs.telerik.com/blazor-ui/components/grid/refresh-data

Expected: same behavior as by button 2.  -> Rebind()->OnRead()...loading progress

Thanks

Completed
Last Updated: 14 Nov 2024 09:28 by ADMIN
Release 7.0.0

The Grid exits edit mode when expanding or collapsing rows in a hierarchy scenario. This only happens when OnStateChanged is set.

Test page that reproduces the behavior: https://blazorrepl.telerik.com/wIkJvdlo09hXCV8u03

Completed
Last Updated: 14 Nov 2024 09:27 by ADMIN
Release 7.0.0

I have the following Grid setup:

  • A Grid column is bound to DateOnly or DateOnly?
  • I have manually defined the OnRead event
  • Filter the DateOnly column, and to get the exception:
    • Serialize and deserialize the args.Request in the OnRead event handler with System.Text.Json OR
    • Page the Grid back and forth

Exception: System.ArgumentException: Operator 'IsEqualTo' is incompatible with operand types 'DateOnly?' and 'DateTime'

Declined
Last Updated: 15 May 2024 08:26 by ADMIN

 

Hi,

 it seems that grid.GetState() and FilterDescriptors, contains +1 "dummy" object.

- If it is by design, ok, BUT then, how to bind this filter descriptor to the ie TelerikFilter? = It displays that dummy object as it is, and confusing end users. Or how to "identify 100%" that is some kind of dummy value to be trashed?

How to reproduce:

1 run the repl demo

2 put "a" into the first colum(Name) filter

3 click button and observe the content of filter descriptors(serialized below the grid - RED is wrong, Green is expected as ok)

similar, but not the same(iam came from here):

https://feedback.telerik.com/blazor/1606424-manually-setting-the-grid-filters-via-the-grid-state-causes-multiple-composite-filters-on-one-column-where-only-one-filter-descriptor-for-that-member-was-set

 

Thanks for the tip, clarification, or removing that redundant values.

Unplanned
Last Updated: 09 May 2024 08:39 by Mike
In order to pass accessibility tests, the search box in Grid should have a label associated with it.  Currently, there is no way to do this because we cannot add an Id to the GridSearchBox component.

My request is to either add an Id parameter so that we can tie a label to it, or expose the aria-label attribute so that we can directly add label text to the component.  Adding both would also be helpful to give users options.  
Completed
Last Updated: 14 Nov 2024 09:27 by ADMIN
Release 7.0.0

The header cell includes the following inner elements when the Grid is sortable:

However, if I disable sorting all those elements are omitted which is not consistent.

 

Duplicated
Last Updated: 08 May 2024 08:42 by ADMIN
Created by: Pratik
Comments: 0
Category: Grid
Type: Feature Request
2
The current Column Chooser is not user friendly and requires multiple clicks as well as user training. For these reasons, I would like the option to include a built in Column Chooser in one location, the Grid ToolBar. 
Unplanned
Last Updated: 30 Apr 2024 15:40 by Niels
I'm trying to set the state of a Grid from the localstorage following the example in the documentation: https://docs.telerik.com/blazor-ui/knowledge-base/grid-save-load-state-localstorage.
This works but when I add the TelerikMediaQuery in my page, the selected items always get reset on page load. Sorting and filters stay applied but the selected items unfortunately not.
Duplicated
Last Updated: 03 May 2024 06:32 by ADMIN

When the user drags a third column to the Grid Group Panel, it ends up being second, instead of last. It looks like each new column is inserted at index 1, instead of appended last (when this is the user's intent).

@using Telerik.DataSource

<p>Group by a third column, so that it should come last in the Group Panel:</p>

<TelerikGrid @ref="@GridRef"
             Data="@GridData"
             Pageable="true"
             Sortable="true"
             Groupable="true"
             FilterMode="GridFilterMode.FilterRow"
             OnStateInit="@( (GridStateEventArgs<Employee> args) => OnGridStateInit(args) )"
             OnStateChanged="@( (GridStateEventArgs<Employee> args) => OnGridStateChanged(args) )">
    <GridColumns>
        <GridColumn Field="@nameof(Employee.Name)" />
        <GridColumn Field="@nameof(Employee.Team)" />
        <GridColumn Field="@nameof(Employee.Salary)" />
        <GridColumn Field="@nameof(Employee.OnVacation)" />
    </GridColumns>
</TelerikGrid>

@code {
    private TelerikGrid<Employee>? GridRef { get; set; }

    private List<Employee> GridData { get; set; } = new();

    private void OnGridStateInit(GridStateEventArgs<Employee> args)
    {
        args.GridState.GroupDescriptors = new List<GroupDescriptor>();

        args.GridState.GroupDescriptors.Add(new GroupDescriptor()
        {
            Member = nameof(Employee.Team),
            MemberType = typeof(string)
        });

        args.GridState.GroupDescriptors.Add(new GroupDescriptor()
        {
            Member = nameof(Employee.OnVacation),
            MemberType = typeof(bool)
        });
    }

    private async Task OnGridStateChanged(GridStateEventArgs<Employee> args)
    {
        if (args.PropertyName == "GroupDescriptors" && args.GridState.GroupDescriptors.Count > 2 && GridRef != null)
        {
            var secondGroupDescriptor = args.GridState.GroupDescriptors.ElementAt(1);

            args.GridState.GroupDescriptors.Remove(secondGroupDescriptor);
            args.GridState.GroupDescriptors.Add(secondGroupDescriptor);

            await GridRef.SetStateAsync(args.GridState);
        }
    }

    protected override void OnInitialized()
    {
        var rnd = new Random();

        for (int i = 1; i <= 20; i++)
        {
            GridData.Add(new Employee()
            {
                Id = i,
                Name = "Name " + i,
                Team = "Team " + (i % 4 + 1),
                Salary = (decimal)rnd.Next(1000, 3000),
                OnVacation = i % 3 == 0
            });
        }
    }

    public class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; } = string.Empty;
        public string Team { get; set; } = string.Empty;
        public decimal Salary { get; set; }
        public bool OnVacation { get; set; }
    }
}

Declined
Last Updated: 10 May 2024 09:52 by ADMIN
Created by: Scott
Comments: 5
Category: Grid
Type: Feature Request
1

On grids with a lot of data there is a delay between when the grid is assigned the data to when the grid shows the data.  During this UI painting period, the NoDataTemplate is displayed for a second or two.

The grid should not show the NoDataTemplate unless the data source is loaded with an empty collection, not just while it is still trying to show the data.

Note: Having a generic message like in the documentation "No Data available / The data is still loading ..." is not satisfying our users. (Blazor Grid - No Data Template - Telerik UI for Blazor) These should really be two different states that can show different messages.

Thanks

Unplanned
Last Updated: 11 Apr 2024 14:11 by Plastic

When a user deletes a record that decreases the number of pages on that Grid, and then they try to edit or add a record, they get stuck in the OnCancel event handler, which gets called over and over in an endless loop.

The behavior can be seen:

  • After deleting a record in the Grid, which decreases the number of pages.
  • The Grid is using a confirmation dialog from the DialogFactory for the Cancel action.


Steps To Reproduce

https://blazorrepl.telerik.com/GokIvFva42BLx7yl37

1. Delete item 11. The Grid will move you to page 1.
2. Try to edit or add a new item. OnCancel will fire in a loop.
3. If OnAdd and OnEdit are not defined, the loop will occur in OnUpdate and OnCancel.

Unplanned
Last Updated: 11 Apr 2024 13:23 by Stefan

I want to compare special characters (such as umlauts) to other user input.

Unplanned
Last Updated: 02 Apr 2024 13:28 by Chase

I have a TelerikGrid that contains many columns and a DetailTemplate within it. The Grid has functionality for multiselect with a checkbox column that appears as the first column on the grid. Is it possible to move this checkbox column in front of the detail template '+' dropdown row?

===

ADMIN EDIT

===

A possible option for the time being is to create a custom expand column and manage its position as needed. See more details and an example here: How to Reorder, Lock or Resize the Hierarchy Expand/Collapse Column in Telerik Blazor Grid.