Completed
Last Updated: 12 Feb 2020 09:49 by ADMIN
Release 2.7.1

There is an issue with setting the Grid's Page property to values other than 1.

This is visible on the Blazor Demo for Grid Paging (https://demos.telerik.com/blazor-ui/grid/paging).

Initially the CurrentPage variable is set to 3, and thus the Page property on the Grid is set to 3. The Pager in the grid correctly shows Page 3 and the Pager Info is also correct, however, the data in the Grid is not filtered to the correct page. This can be seen by clicking Page 1 in the Pager (the data remains the same), and then clicking Page 3 in the Pager (the data changes, and is different than the initial data).

 

Completed
Last Updated: 01 Apr 2022 19:48 by ADMIN
Release 3.2.0
Created by: Peter
Comments: 11
Category: Grid
Type: Feature Request
12

Please add a property to the grid that lets me specify a debounce time for filtering. This way I can (for example) set the debounce time to 500(ms), and then only have the grid filter (which is slow) when the user stops typing (it current takes about 300ms per keypress anyway).

---

ADMIN EDIT

We are reopening this feature request because it can make sense for the FilterRow filter mode as an out-of-the-box feature, even if it can be achieved right now with a bit of application code (example).

---

Duplicated
Last Updated: 02 Mar 2020 12:52 by ADMIN
Created by: Werner
Comments: 1
Category: Grid
Type: Feature Request
8

An autofit feature would be useful which sizes a column according to fit the current content exactly (with some space on the left and right ;-)

* autofit attribute for a column to automatically autofit the column

* autofit method on a grid column to issue autofit by code

Autofit for entire table (nice to have)

* autofit attribute on the grid element to automatically autofit all its columns (except those explicitely set to AutoFit="false")

* autofit method on a grid to issue autofit by code

Completed
Last Updated: 12 Jun 2024 11:29 by ADMIN
Release 2.18.0

Please add an attribute to Blazor GridColumn which allows to easily format data with the default .NET standard formats

e.g. <GridColumn Field="@(nameof(Item.Price))" Title="Price" Format="0#.##" />

It's a little bit annoying always having to define a template for this purpose.

 


Not Logged in

Duplicated
Last Updated: 02 Mar 2020 12:52 by ADMIN
Created by: Werner
Comments: 2
Category: Grid
Type: Feature Request
2

Please add an attribute to Blazor GridColumn which allows to easily align text horizontal in a GridColumn

e.g. <GridColumn Field="@(nameof(Item.Price))" Title="Price" HorizontalAlignment="Right" />

At least: Left, Right, Center

 

Not Logged in

Completed
Last Updated: 28 Sep 2021 06:50 by ADMIN
Created by: Brian
Comments: 3
Category: Grid
Type: Feature Request
5

It is a common request to show grids in alternating colors, rather than simply white and grey.  Because the Grid component generates the <tr> element, we are left with manually setting each <td> element.  A tedious but effective solution.

The feature I would like to request is to add 2 new tags to the <TelerikGrid> component, call them EvenRowClass, and OddRowClass.  The behavior is the same as the Class tag, but they operate on Even and Odd numbered rows of data, respectively.  Their values would be added to the <tr> element as <tr class="MyEvenClass"> or <tr class="MyOddClass" in the same manner class k-alt is generated or not.  This would provide a simple yet extensible mechanism to achieve custom alternating row colors in a Grid.

 
Completed
Last Updated: 26 Jul 2021 07:36 by ADMIN
Release 2.26.0
Created by: David
Comments: 10
Category: Grid
Type: Feature Request
29

Can you add a confirmation popup to the grid row delete like what is in the JQuery UI library?

---

ADMIN EDIT

As of 2.23.0 predefined confirmation dialog is available for use with just a few lines of code and you can achieve that behavior through the OnClick event of the command button:

<TelerikGrid Data=@GridData EditMode="@GridEditMode.Inline"
             Height="500px" AutoGenerateColumns="true" Pageable="true"
             OnDelete="@DeleteItem">
    <GridColumns>
        <GridAutoGeneratedColumns />

        <GridCommandColumn Width="100px">
            <GridCommandButton Command="Delete" Icon="delete" OnClick="@ConfirmDelete">Delete</GridCommandButton>
        </GridCommandColumn>

    </GridColumns>
</TelerikGrid>

@code {
    //for the confirmation - see the OnClick handler on the Delete button
    [CascadingParameter]
    public DialogFactory Dialogs { get; set; }

    async Task ConfirmDelete(GridCommandEventArgs e)
    {
        Product productToDelete = e.Item as Product;
        string confirmText = $"Are you sure you want to delete {productToDelete.Name}?";
        string confirmTitle = "Confirm Deletion!";
        //the actual confirmation itself
        bool userConfirmedDeletion = await Dialogs.ConfirmAsync(confirmText, confirmTitle);
        e.IsCancelled = !userConfirmedDeletion;//cancel the event if the user did not confirm
    }

    // only sample data operations follow

    public List<Product> GridData { get; set; }

    protected override async Task OnInitializedAsync()
    {
        GridData = Enumerable.Range(1, 50).Select(x => new Product { Id = x, Name = $"Name {x}" }).ToList();
    }

    private void DeleteItem(GridCommandEventArgs args)
    {
        Console.WriteLine("DELETING ITEM");
        var argsItem = args.Item as Product;

        GridData.Remove(argsItem);
    }

    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

---

Completed
Last Updated: 18 Feb 2020 13:08 by ADMIN
Release 2.8.0
Created by: Nick
Comments: 5
Category: Grid
Type: Bug Report
10

Hi,

This relates to my forum post here: https://www.telerik.com/forums/grid-selection-performance

I've noticed that the grid becomes very slow to select a row and to page when there is more than a little data being displayed. In the test project attached it can take 9 seconds to just select a row on the grid which is unworkable. Although we can reduce the amount of data and use paging in the real application we are developing it is still far too slow for Production use.

The test application has 2 pages, one using the Telerik grid and one using a simple component that draws an HTML table and handles selection. My aim was to prove that the problem is not down to Blazor re-rendering when a row is selected. The simple component it is around 0.3 seconds to select a row vs 9 seconds for the Telerik grid.

Obviously I appreciate that the Telerik grid is doing a lot more than the component, but it is not just Blazor that is causing this issue, it must be related to the work the grid has to do when a row is selected.

The attached project has 2 pages, one using the Telerik Grid one using my simple component. Click the load button to generate 300 rows of test data and then try clicking on a row. You can see the problem by running a performance trace in either Firefox or Chrome. The browser can even become unresponsive just clicking on a row, which you will appreciate is impossible to live with. If that doesn't happen you can try increasing the amount of data generated.

Thanks for your time!
Kind Regards,
Nick.

 

 

 

 

 

Completed
Last Updated: 23 Apr 2020 10:29 by ADMIN
Release 2.13.0

Reproducible:

 

@using System.Collections.ObjectModel;

<div style="align-self:center;text-align:center" class="alert-danger">
    @errorMessages
</div>
<div style="align-self:center;text-align:center" class="alert-success">
    @successMessages
</div>
<TelerikGrid Data=@entitlementsExtended
             Pageable="true"
             Groupable="false"
             PageSize="@PageSize"
             OnUpdate="@UpdateHandler"
             Sortable="false"
             FilterMode="Telerik.Blazor.GridFilterMode.FilterMenu">
    <GridColumns>
        <GridColumn Field="@nameof(EntitlementValueDTOExtended.Description)" Editable="false" />
        <GridColumn Field=@nameof(EntitlementValueDTOExtended.Value)>
            <EditorTemplate>
                @{
                    CurrentlyEditedEntitlement = context as EntitlementValueDTOExtended;
                    <div>
                        <TelerikDropDownList Data="@entitlementOptions" @bind-Value="CurrentlyEditedEntitlement.Value" Width="60px" PopupHeight="auto"></TelerikDropDownList>
                    </div>
                }
            </EditorTemplate>
        </GridColumn>

        <GridCommandColumn Width="300px">
            <GridCommandButton Command="Save" Icon="save" ShowInEdit="true">Update</GridCommandButton>
            <GridCommandButton Command="Edit" Icon="edit">Edit</GridCommandButton>
            <GridCommandButton Command="Cancel" Icon="cancel" ShowInEdit="true">Cancel</GridCommandButton>
        </GridCommandColumn>
    </GridColumns>
</TelerikGrid>

@code {
    int PageSize = 10;
    public EntitlementValueDTOExtended CurrentlyEditedEntitlement { get; set; } = new EntitlementValueDTOExtended();

        //changing this to List<> works
    public ObservableCollection<EntitlementValueDTOExtended> entitlementsExtended { get; set; } = new ObservableCollection<EntitlementValueDTOExtended>();

    public static List<string> entitlementOptions = new List<string> { "I", "E" };

    public string errorMessages { get; set; } = "";
    public string successMessages { get; set; } = "";

    protected async override Task OnInitializedAsync()
    {
        IEnumerable<int> entitlements = Enumerable.Range(1, 50);

        //this is a simplified workaround for people needing nested models
        foreach (var entitlement in entitlements)
        {
            EntitlementValueDTOExtended entitlementExtended = new EntitlementValueDTOExtended();
            entitlementExtended.Id = Guid.NewGuid();
            entitlementExtended.Description = $"descr {entitlement}";
            entitlementExtended.Value = $"value {entitlement}";
            entitlementExtended.EntitlementTypeId = entitlement;

            entitlementsExtended.Add(entitlementExtended);
        }
        StateHasChanged();

        await base.OnInitializedAsync();
    }

    public async Task UpdateHandler(GridCommandEventArgs args)
    {
        EntitlementValueDTOExtended item = (EntitlementValueDTOExtended)args.Item;

        var matchingItem = entitlementsExtended.FirstOrDefault(c => c.Id == item.Id);
        if (matchingItem != null)
        {
            matchingItem.Description = item.Description;
            matchingItem.EntitlementTypeId = item.EntitlementTypeId;
            matchingItem.Value = item.Value;
        }

        successMessages = $"updated grid on {DateTime.Now}";
        StateHasChanged();

    }

    public class EntitlementValueDTOExtended
    {
        public Guid Id { get; set; }
        public string Description { get; set; } = "";
        public string Value { get; set; } = "";
        public int EntitlementTypeId { get; set; } = 0;
    }

Completed
Last Updated: 06 Sep 2023 14:41 by RINGER
Release 2.17.0
Created by: James
Comments: 9
Category: Grid
Type: Feature Request
19
Hi there, we have 2 applications we are currently building. We would like to know, if you guys know, when will the column chooser for the TelerikGrid be released? 
Won't Fix
Last Updated: 16 Apr 2020 09:31 by ADMIN
Scheduled for 2.11.0

A workaround is to initialize the collection of the selected items:

<TelerikButton OnClick="@LoadData">Load Data</TelerikButton>

<TelerikGrid Data=@adminUsers Height="300px" Pageable=true PageSize=10 SelectionMode="@GridSelectionMode.Multiple"
             @bind-SelectedItems="SelectedAdminUsers">
    <GridColumns>
        <GridCheckboxColumn SelectAll="true"></GridCheckboxColumn>
        <GridColumn Field=@nameof(User.DisplayName) Title="User Name" />
        <GridColumn Field=@nameof(User.Department) Title="Department" />
        <GridColumn Field=@nameof(User.Status) Title="Status" />
        <GridColumn Field=@nameof(User.EmployeeId) Title="Employee Id" />
    </GridColumns>

</TelerikGrid>

@code
{
    public IEnumerable<User> SelectedAdminUsers { get; set; } = Enumerable.Empty<User>();

    public List<User> adminUsers { get; set; }

    void LoadData()
    {
        adminUsers = Enumerable.Range(1, 200).Select(x => new User
        {
            EmployeeId = x,
            Status = $"status {x}",
            Department = $"department {x}",
            DisplayName = $"name {x}"
        }
        ).ToList();
    }

    public class User
    {
        public string DisplayName { get; set; }
        public string Department { get; set; }
        public string Status { get; set; }
        public int EmployeeId { get; set; }
    }
}

Completed
Last Updated: 16 Jan 2020 08:42 by ADMIN
Release 2.6.1

This worked in 2.5.1.

Sample repro (focus the textbox and try moving the cursor with the left and right arrows)

<TelerikTabStrip>
    <TabStripTab Title="first tab">

        <TelerikTextBox Value="@TbValue"></TelerikTextBox>

        <input type="text" value="@TbValue" />

    </TabStripTab>
    <TabStripTab Title="second tab">another tab</TabStripTab>
</TelerikTabStrip>

@code{ 
    string TbValue { get; set; } = "lorem ipsum";
}

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

I would like to request these features on the Blazor Grid:

  • Add column pinning/freezing
  • Add selectable column totals sum/min/max/count/avg functions and/or a way to define custom column totals calculations

Thanks.

 

 

Declined
Last Updated: 14 Jan 2020 07:41 by Christian

We have a Telerik grid which is customized by some CSS rules. The problem is that the header width does not fill the width of the table if no scrollbar is shown.

My question is: Why did you create the table like it is right now in HTML (See screenshot as well)? In my opinion, it would be easier to use something more simple like described here: https://www.w3schools.com/html/html_tables.asp

<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
</table>

 

This would make it easier to customize the table / grid as well as having no issues with the widths at all. This rectangle on the right top edge doesn't look good...

 

I'm not sure if this is a feature request or just a discussion / idea for the developers :) I just wanted to bring this in and get an explanation why you chose to do it that way (And maybe get a fix for this as well).

 

Best regards,

Christian

Completed
Last Updated: 15 Jan 2020 16:20 by ADMIN
Release 2.6.1
Created by: Robert
Comments: 1
Category: Grid
Type: Bug Report
2

Hi,

I'm trying to set an empty column title


 <Telerik.Blazor.Components.GridColumn Field="@item.FieldName"
                                       Title=""
                                       Resizable="true"
                                       Width="@width">

 

I would expect it to show an empty header title but instead fieldName is displayed.

Completed
Last Updated: 14 Jan 2020 14:00 by ADMIN
Release 2.6.0

There's a bug when using the popup mode and adding a record

https://demos.telerik.com/blazor-ui/grid/editing-popup

 

  1. Click 'Add Employee'
  2. Click the X at the top right of the modal popup
  3. You are left with a row in the grid

Completed
Last Updated: 13 Mar 2020 15:27 by ADMIN
Release 2.9.0

Hi,

when scrolling all the way down on a grid and then using horizontal scroll, grid is scrolled vertically a bit.

Here is the video

https://drive.google.com/file/d/16GXvUO9Q9kTI2MSkn2t8_9-2ZBn44QO6/view?usp=sharing

 

Best regards,

Robert

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

You can work around this by disabling virtual scrolling with something like this:

ScrollMode="@(Data.Count() > 30 ? GridScrollMode.Virtual : GridScrollMode.Scrollable)"

Duplicated
Last Updated: 02 Mar 2020 13:13 by ADMIN
Created by: Peter
Comments: 2
Category: Grid
Type: Feature Request
1
The scenario is that a user has set various filter and sort options in a grid and when they select an item in the grid and click a custom edit or add button, we navigate them to a separate page to complete the add or edit action. When they have completed the add or edit, we want to navigate them back to the page with the grid and restore whatever filter, sort, page, and page size they had set in the grid prior to navigating away. The page and page size are easy enough to do since the grid allows binding to those parameters but the grid does not allow you to bind to the sort or filter options.