Unplanned
Last Updated: 08 Apr 2022 10:07 by ADMIN
Created by: Jason Parrish
Comments: 2
Category: Grid
Type: Feature Request
3

I would like the grid and treelist to honor the DisplayFormatAttribute.NullDisplayText Property so I don't have to use cell templates to change what null values render.

FYI... Here's a REPL of it not respecting it

Completed
Last Updated: 17 Aug 2023 19:34 by Andy
Release 2.25.0

I want to be able to use interfaces and models that are created from a service when working with the grid. A parameterless constructor is not enough for me, I need to be able to instantiate models in a more complex manner.

---

ADMIN EDIT

The tentative event name I have put in the title might vary when the implementation is researched. The goal would still be the same - the grid to provide an event when it needs an instance of the model so you can provide it with one. At the moment this happens when a row enters edit mode, when the filter list needs to be built, and when you are inserting an item (a caveat with the last one might be the OnClick event for the command button - the new event might have to fire before OnClick so it can give you the model).

---

Unplanned
Last Updated: 08 Apr 2021 09:00 by ADMIN
Currently, the Shift key is handled only through the selection of row dom elements and not through the checkbox elements.
Unplanned
Last Updated: 13 Apr 2021 06:43 by ADMIN

I noticed after debugging a problem when editing some rather complex rows in a grid that the grid internally calls Telerik.Blazor.Extensions.ObjectExtensions.Clone(...) to create a deep clone for editing. If the object being cloned implements System.ICloneable then this is ignored and an attempt is made to clone it using reflection - the problem is that ObjectExtensions.Clone(...) fails for a number of cases and observing ICloneable would give a developer the means to implement the correct cloning behaviour.

I'm not asking for ObjectExtensions.Clone(...) to be fixed in any way (after all, no matter what you do there will always be some cases it cannot handle), just to use ICloneable where possible.

As an aside, the failed cases were:

  • object has an indexer with get/set (exception thrown by ObjectExtensions.Clone() because it attempts to read the value without passing an index)
  • object implements IEnumerable, including arrays (original object returned without being cloned)
  • object contains a circular reference (stack overflow)
Unplanned
Last Updated: 13 May 2021 17:07 by ADMIN
Created by: Wes
Comments: 0
Category: Grid
Type: Feature Request
3

When you set widths to some columns in the grid, the rest of the columns stretch to accommodate the rest of the width. Thus, the row drag column can stretch and become unexpectedly wide. A screenshot of the problem is attached.

Perhaps the GridRowDraggableSettings could have a parameter for the width of the draggable column.

 

<AdminEdit>

As a workaround you can use some CSS to set a width for the Drag column:

<style>
    .custom-row-draggable-col-width.k-grid .k-drag-col {
        width: 100px;
    }
</style>

<TelerikGrid Data="@MyData" Height="400px"
             Class="custom-row-draggable-col-width"
             Pageable="true"
             Resizable="true"
             Reorderable="true"
             RowDraggable="true"
             OnRowDrop="@((GridRowDropEventArgs<SampleData> args) => OnRowDropHandler(args))">
    <GridSettings>
        <GridRowDraggableSettings DragClueField="@nameof(SampleData.Name)"></GridRowDraggableSettings>
    </GridSettings>
    <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 {
    private void OnRowDropHandler(GridRowDropEventArgs<SampleData> args)
    {
        //The data manipulations in this example are to showcase a basic scenario.
        //In your application you should implement them as per the needs of the project.

        MyData.Remove(args.Item);

        var destinationItemIndex = MyData.IndexOf(args.DestinationItem);

        if (args.DropPosition == GridRowDropPosition.After)
        {
            destinationItemIndex++;
        }

        MyData.Insert(destinationItemIndex, args.Item);
    }

    public List<SampleData> MyData = Enumerable.Range(1, 30).Select(x => new SampleData
    {
        Id = x,
        Name = "name " + x,
        Team = "team " + x % 5,
        HireDate = DateTime.Now.AddDays(-x).Date
    }).ToList();

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

</AdminEdit>

Unplanned
Last Updated: 14 Jun 2021 12:27 by ADMIN
Created by: Michael
Comments: 0
Category: Grid
Type: Feature Request
3

We often have grid data with a widely varying quantity of cell content from row to row. We usually present this with constant row height initially to have as much row overview as possible at a glance.

Grabbing the row divider line and individually make it larger or even double click on it to fit the size would be very useful for users.

Unplanned
Last Updated: 09 Sep 2021 07:44 by ADMIN
I would like to recommend that a check box be added to the GridColumnMenuChooserGroup, so the entire group can be selected or deselected.  
Completed
Last Updated: 03 Dec 2021 14:32 by ADMIN
Release 2.30.0
Created by: Radko
Comments: 0
Category: Grid
Type: Feature Request
3
I would like to be able to set constraints for min and max width for the draggable resizing introduced by the Resizable parameter of the Column. Meaning, if I set a min width of 50 pixels, I would like for the column to not be able to shrink beyond this point when manually resized by the draggable handle.
Unplanned
Last Updated: 28 Dec 2021 15:37 by Nemo
Created by: Nemo
Comments: 11
Category: Grid
Type: Feature Request
3

Hi, please expose the debounce delay as a property of TelerikGrid so we can set how soon virtualized columns are loaded after the user scrolls.

**Admin Edit**

This feature request requires research, and if such DebounceDelay parameter can work with good quality in all cases - it will be implemented. Additionally, we will revise the feature together with loading next set of columns if it will be applicable.

**Admin Edit**

Declined
Last Updated: 25 Sep 2024 11:24 by ADMIN

   So what I propose is a fixed width for a column of the grid (and locked) with the remaining columns auto-sizing.

In my situation, I have an action switch button where the client can delete a row, edit a row etc but the action code dropdown column needs to ALWAYS be the same width.  The rest of the columns should automatically size based on the existing behaviour.

   Now I have tried using the autosize for just that column, but I have to render the grid first, then run the autosize (which gives a fun show of resizing to the user) then all the columns become fixed width, but the vertical scroll bar doesn't move and stays in its initial position.

 

 

Unplanned
Last Updated: 14 Aug 2023 08:23 by ADMIN
Created by: Hendrik
Comments: 0
Category: Grid
Type: Feature Request
3
Please allow the Grid to support in cell editing only via double click. This will give the possibility to preserve single clicks for selection.
Unplanned
Last Updated: 21 Oct 2022 13:13 by ADMIN
Created by: Peter
Comments: 2
Category: Grid
Type: Feature Request
3

The `Context` of `<GridColumn>` is of type `object`, requiring typecasting in order to use the value.

Instead, make `<GridColumn>` generic so that `Context` is strongly typed.  If you use `TItem` as the name for the generic then Blazor will infer it without the user having to specify it.

 

Unplanned
Last Updated: 30 Nov 2022 13:47 by JeffVisibilEDI

I have applications for which I would like to define the default join operator for Grid filters to be "OR" instead of the default "AND."

Please expose an option to customize the default logical operator in Filter Menu.

Unplanned
Last Updated: 30 May 2023 09:57 by ADMIN

Currently, the empty cells in the exported Excel file contain zero-length strings. As a result, the ISBLANK() function returns false for them while the cells essentially do not have content.

Please allow the empty Grid cells to be treated as blank in the exported Excel file.

===

ADMIN EDIT

===

For the time being, you may extend the formula to also check whether the length of the cell content is 0. For that purpose, you may use the LEN() function as suggested here:  https://learn.microsoft.com/en-us/office/troubleshoot/excel/isblank-function-return-false#workaround.

Unplanned
Last Updated: 28 Feb 2023 09:21 by Valentin
Created by: Valentin
Comments: 0
Category: Grid
Type: Feature Request
3

We found out during SQL profiling that when bound to an IQueryable (linked to DbContext) with pagination enabled, the Telerik data grid called SQL to count elements twice. This is not a pre-render problem as those deplicated queries are actually executed twice (one pair for each render).

Our simplified code:

<TelerikGrid TItem="Item"
             Data="_data"
             PageSize="10"
             Pageable="true"
             Sortable="true">
    <GridColumns>
        <GridColumn Field="@nameof(Item.Id)" />
        <GridColumn Field="@nameof(Item.Code)" />
    </GridColumns>
</TelerikGrid>

@code {
    [Inject] protected DbContext DbContext { get; set; }

    private IEnumerable<Item> _data;

    protected override void OnInitialized()
    {
        base.OnInitialized();
        _data = DbContext.Items
            .Select(x => new Item()
            {
                Id = x.Id,
                Code = x.Code
            });
    }
}

===

ADMIN EDIT:

There are two possible ways to avoid the double COUNT:

  • Enumerate the collection before binding the Grid. For example, call ToList().
  • Bind the Grid via OnRead event. This gives full control over the data binding process and possible optimizations.
Unplanned
Last Updated: 12 Jul 2023 10:41 by Fabian

When I define a bigger number of MultiColumn Header the rendering performance of the Grid component quickly deteriorates. 

I would like an improvement in this regard.

Unplanned
Last Updated: 31 Jul 2023 10:18 by Frank
Hi

is there a way to make the Filtering in a grid work with wildcard symbols like '%' or '*' ?

I have checked the page https://docs.telerik.com/blazor-ui/common-features/filter-operators

For strings none of the possible operators seems to support wildcard symbols, they all treat it the symbol "as is" leading to no results. 

Guessing that the filtering is using Linq and Expressions so it would be nice if the FilterDescriptor constructor could accept a predicate function as parameter how the FilterValue is to be evaluated. I can see in the API reference that there is a protected method:

CreateFilterExpression(ParameterExpression parameterExpression)
but that is not usable / accessible when programmatically working with FilterDescriptor instances. 

Do you have plans for allowing wildcards in filter or offering new FilterOperators like "Regex" ? Or plans where a client could implement their own custom FilterOperators? 

Thanks

Frank
Unplanned
Last Updated: 11 Sep 2023 11:13 by Reto
Created by: Reto
Comments: 0
Category: Grid
Type: Feature Request
3
Add an event that fires after the drag starts and before it ends. 
Unplanned
Last Updated: 19 Feb 2024 08:51 by Manuel
Created by: Manuel
Comments: 0
Category: Grid
Type: Feature Request
3
Inside the <GridSettings> with <GridGroupableSettings Reorderable=true> to be able to Drag and Drop grouping reorder and not only with "Move Next" and "Move Previous".
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.