Declined
Last Updated: 03 Jul 2020 08:07 by ADMIN
Created by: Shad
Comments: 2
Category: Grid
Type: Bug Report
0

I am using the Telerik UI for Blazor 2.13. The export excel does not work with it. I am using the exact code snippet from docs as below on my test page:

@* You can sort, group, filter, page the grid, resize and reodrder its columns, and you can click the
    Export button to save the current data *@
@page "/test"
@using Telerik.Blazor.Components

<TelerikGrid Data="@GridData" Pageable="true" Sortable="true" Resizable="true" Reorderable="true"
              Groupable="true">

    <GridToolBar>
        <GridCommandButton Command="ExcelExport">Export to Excel</GridCommandButton>
        <label><TelerikCheckBox @bind-Value="@ExportAllPages" />Export All Pages</label>
    </GridToolBar>

    <GridExport>
        <GridExcelExport FileName="telerik-grid-export" AllPages="@ExportAllPages" />
    </GridExport>

    <GridColumns>
        <GridColumn Field="@nameof(SampleData.ProductId)" Title="ID" Width="100px" />
        <GridColumn Field="@nameof(SampleData.ProductName)" Title="Product Name" Width="300px" />
        <GridColumn Field="@nameof(SampleData.UnitsInStock)" Title="In stock" Width="100px" />
        <GridColumn Field="@nameof(SampleData.Price)" Title="Unit Price" Width="200px" />
        <GridColumn Field="@nameof(SampleData.Discontinued)" Title="Discontinued" Width="100px" />
        <GridColumn Field="@nameof(SampleData.FirstReleaseDate)" Title="Release Date" Width="300px" />
    </GridColumns>
</TelerikGrid>

@code {
    List<SampleData> GridData { get; set; }
    bool ExportAllPages { get; set; }

    protected override void OnInitialized()
    {
        GridData = Enumerable.Range(1, 100).Select(x => new SampleData
        {
            ProductId = x,
            ProductName = $"Product {x}",
            UnitsInStock = x * 2,
            Price = 3.14159m * x,
            Discontinued = x % 4 == 0,
            FirstReleaseDate = DateTime.Now.AddDays(-x)
        }).ToList();
    }

    public class SampleData
    {
        public int ProductId { get; set; }
        public string ProductName { get; set; }
        public int UnitsInStock { get; set; }
        public decimal Price { get; set; }
        public bool Discontinued { get; set; }
        public DateTime FirstReleaseDate { get; set; }
    }
}

Whenever I click on the export button. It simply does not respond. I do see lot of http requests though :

 

Please let me know if you need anymore details.

Completed
Last Updated: 30 Jun 2020 06:55 by ADMIN
Release 2.15.0
Created by: Alden
Comments: 17
Category: Grid
Type: Feature Request
44

---

ADMIN EDIT: Check the source code and comments in it from the following demo to see how to bind the grid to a DataTable: https://demos.telerik.com/blazor-ui/grid/data-table. You can also examine it offline - the entire demos project is available in the "demos" folder of your installation

The sample code snippet below will let the grid show data, but will not enable complex operations like filtering and sorting. Review the demo linked above for more details on the correct approach.

---

 

I would like to be able to supply a DataTable with an arbitrary amount of columns to the grid and display them all without declaring them all. This should also allow paging, sorting, filtering. At the moment binding to a DataTable is not supported, only IEnumerable collections are.

At the moment, here's the closest I can get, sorting and filtering throw errors so they are disabled.

 

@using System.Data
@using Telerik.Blazor
@using Telerik.Blazor.Components.Grid
 
<button class="btn btn-primary" @onclick="@LoadData">Load Data</button>
 
@if (@d != null)
{
    <TelerikGrid Data=@d.AsEnumerable() TItem="DataRow"
                 Sortable="false" Filterable="false" Pageable="true" PageSize="3"
                 Height="400px">
        <TelerikGridColumns>
            @foreach (DataColumn col in d.Columns)
            {
                <TelerikGridColumn Field="@col.ColumnName" Title="@col.ColumnName">
                    <Template>
                        @((context as DataRow).ItemArray[col.Ordinal].ToString())
                    </Template>
                </TelerikGridColumn>
            }
        </TelerikGridColumns>
    </TelerikGrid>
}
 
@functions {
    DataTable d = null;
 
    void LoadData()
    {
        d = GetData();
    }
 
    public DataTable GetData()
    {
        DataTable table = new DataTable();
 
        table.Columns.Add("Product", typeof(string));
        table.Columns.Add("Price", typeof(double));
        table.Columns.Add("Quantity", typeof(int));
        table.Columns.Add("AvailableFrom", typeof(DateTime));
 
        table.Rows.Add("Product 1", 10.1, 2, DateTime.Now);
        table.Rows.Add("Product 2", 1.50, 10, DateTime.Now);
        table.Rows.Add("Product 3", 120.66, 5, DateTime.Now);
        table.Rows.Add("Product 4", 30.05, 10, DateTime.Now);
 
        return table;
    }
}

 

Duplicated
Last Updated: 24 Jun 2020 15:41 by ADMIN
I have a grid with many columns in a Blazor server app. If you have results in the grid the scrollbars appear. If you filter a column that you have to scroll to see and there are no results the grid clears, the scrollbars disappear and the column is again scrolled out of view. In this situation there is no way to clear the filter. I didn't see an option to always show the scrollbars.
Completed
Last Updated: 24 Jun 2020 07:26 by ADMIN
Release 2.15.0

Because the shape of our business objects is not something your grid is easily bound to, we are attempting to generate ExpandoOjbects on the fly and bind to them.  In the picture below you can see that Id is not binding correctly.  Name is showing up because a column Template was used and that seems to work fine.  However, when attempting to use an EditorTemplate we get the RuntimeBinderException shown below.

 

 

 

 

 

@page "/dynamic-vendor"
@using System.Dynamic
@using Telerik.Blazor.Components.Grid

<div style="width: 800px; overflow-x: auto; overflow-y:hidden; border: 1px solid red; height:400px">
    <TelerikGrid Data="@expandoVendors" EditMode="inline" Pageable=true PageSize=10 SelectionMode="Telerik.Blazor.GridSelectionMode.Multiple">
        <TelerikGridColumns>
            <TelerikGridCommandColumn width="100">
                <TelerikGridCommandButton Command="Edit" Icon="edit">Edit</TelerikGridCommandButton>
                <TelerikGridCommandButton Command="Update" Icon="save" ShowInEdit="true">Update</TelerikGridCommandButton>
                <TelerikGridCommandButton Command="Cancel" Icon="cancel" ShowInEdit="true">Cancel</TelerikGridCommandButton>
            </TelerikGridCommandColumn>
            <TelerikGridColumn Field="Id"></TelerikGridColumn>
            <TelerikGridColumn Field="Name" Title="Name" Editable="true">
                <Template>
                    @{
                        dynamic v = context as ExpandoObject;
                        <span style="white-space:nowrap">@(v.Name)</span>
                    }
                </Template>
                <EditorTemplate>
                    @{
                        dynamic v = context as ExpandoObject;
                        <input type="text" bind="@(v.Name)" />
                    }
                </EditorTemplate>
            </TelerikGridColumn>
        </TelerikGridColumns>
    </TelerikGrid>
</div>

@functions {

    List<ExpandoObject> expandoVendors { get; set; }

    protected override async Task OnInitializedAsync()
    {
        expandoVendors = new List<ExpandoObject>();
        var v1 = new ExpandoObject();
        v1.TryAdd("Id", "1");
        v1.TryAdd("Name", "Google");
        expandoVendors.Add(v1);

        var v2 = new ExpandoObject();
        v2.TryAdd("Id", "2");
        v2.TryAdd("Name", "Amazon");
        expandoVendors.Add(v2);
    }

}
Completed
Last Updated: 23 Jun 2020 14:38 by ADMIN
Release 2.15.0
Created by: Ramon
Comments: 3
Category: Grid
Type: Feature Request
33

In addition to more filtering options we would like to have the ability to use custom filter components instead of the built-in ones. For example, through a cell template for the filter row.

Please comment below with how you would like to see this integrate into the data source operations of the grid (for example, should it fire an event where you filter the data you pass to the grid, or should the grid expose some method/interface that you need to use).

Completed
Last Updated: 22 Jun 2020 10:21 by ADMIN
Release 2.15.0
Created by: Nick
Comments: 0
Category: Grid
Type: Feature Request
54
For the time being, you can use a custom template to attach the handlers to your own elements (e.g., to the <td> if you use a RowTemplate).
Unplanned
Last Updated: 07 Jun 2020 17:01 by ADMIN
Created by: ANDREW
Comments: 0
Category: Grid
Type: Bug Report
3

Group by the third column - there will be no aggregate info:

    <TelerikGrid Data="@myData" Pageable="true" Sortable="true" FilterMode="@GridFilterMode.FilterRow" Groupable="true">
        <GridColumns>
            <GridColumn Field="@nameof(SampleComplexObject.ID)" Title="ID"></GridColumn>
            <GridColumn Field="@nameof(SampleComplexObject.Name)" Title="The Name"></GridColumn>
            <GridColumn Title="First Nested Property" Field="SomeNavigationProperty.Field1">
                <GroupFooterTemplate>
                   Count: @context.Count
                </GroupFooterTemplate>
            </GridColumn>
            <GridColumn Field="SomeNavigationProperty.OtherField" />
        </GridColumns>
        <GridAggregates>
            <GridAggregate Field="SomeNavigationProperty.Field1" Aggregate="@GridAggregateType.Count" />
        </GridAggregates>
    </TelerikGrid>


@code {
    public class SampleComplexObject
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public NestedObject SomeNavigationProperty { get; set; } // use this field name for data binding
    }

    public class NestedObject
    {
        public string Field1 { get; set; }
        public string OtherField { get; set; }
    }

    public IEnumerable<SampleComplexObject> myData = Enumerable.Range(1, 50).Select(x =>
            new SampleComplexObject
            {
                ID = x,
                Name = "Name " + x,
                SomeNavigationProperty = new NestedObject
                {
                    Field1 = "first " + x % 4,
                    OtherField = "second " + x % 6
                }
            }
        );
}

Declined
Last Updated: 05 Jun 2020 07:37 by ADMIN
Created by: Rob
Comments: 1
Category: Grid
Type: Bug Report
0

Grid OnRead .Clear() Issue

With the following component:

@page "/counter"
@using System.Collections.ObjectModel
General grid with its most common features
<TelerikGrid Data="@MyData" Pageable="true" @bind-Page="page" PageSize="5" TotalCount="30" OnRead="@ReadItems" >
    <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 {
    public List<SampleData> MyData { get; set; } = new List<SampleData>();
    //public ObservableCollection<SampleData> MyData { get; set; } = new ObservableCollection<SampleData>();
    private int page = 1;

    private void ReadItems(GridReadEventArgs args)
    {
        //MyData = new List<SampleData>();  //OK!
        //MyData = new ObservableCollection<SampleData>(); //OK!
        MyData.Clear();  //List: No update. ObservableCollection: System.StackOverflowException!
        Populate();
        StateHasChanged();
    }

    private void Populate()
    {
        foreach (var data in Enumerable.Range((page - 1) * 5, 5).Select(x => new SampleData
        {
            Id = x,
            Name = "name " + x,
            Team = "team " + x % 5,
            HireDate = DateTime.Now.AddDays(-x).Date
        }))
        {
            MyData.Add(data);
        }
    }

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

I see the issues in the comment fields.  Changing OnRead to async makes no difference.  

The workaround is to assign a new List or ObservableCollection instead of using .Clear()

Duplicated
Last Updated: 04 Jun 2020 08:49 by ADMIN
Created by: Marcos Mataloni
Comments: 1
Category: Grid
Type: Feature Request
3

We would like to see this functionality:

Stacked Header like in https://blazor.syncfusion.com/demos/datagrid/stacked-header?theme=bootstrap4

Declined
Last Updated: 04 Jun 2020 07:22 by Daniel

ADMIN EDIT: The issue stems from the data operations in the business logic, and it is not a bug in the component and it does not relate to WebAPI usage.

 

Hi there,

as a follow-up of https://feedback.telerik.com/blazor/1461176-set-specific-position-in-virtual-scrolling-mode we have implemented the suggested skip handling. But there seems an issue when the data is fetched asynchronously, specifically from an Web API.

After hours of debugging and analyzing i have narrowed it down to the following simple Blazor app showcasing the bug:

https://github.com/ViRuSTriNiTy/blazor-app-telerik-grid-skip-bug

Please clone the repo, start the application and follow the steps displayed above the grid to reproduce the bug.

The second skip followed immediatelly after the first one originates from the Telerik assembly hence i cannot investigate it further (no source code).

What are your thoughts? Is it a bug?

So lonG

Daniel

 

 

Duplicated
Last Updated: 01 Jun 2020 15:43 by Brent
Created by: Brent
Comments: 2
Category: Grid
Type: Feature Request
0

Hi, I'm looking to reproduce visual behavior with the Blazor WASM Gird that we've already standardized on in our implementation of the KendoReact Grid component.

one of the things we're doing that i'm not seeing yet in the Blazor Grid docs is rendering a triple-dot icon in the column header that clicks down to show a custom menu... looking around, the closest thing i see so far is the Blazor Grid support for a "Toolbar" header... that would probably work as a path forward but I wanted to ask if i was missing anything else more similar? or perhaps eventual plans.

or is there any facility to custom render the column header ourselves?

i'm including a screenshot example of what we've settled on so far after several iterations

 

Thank you! this Blazor wasm direction you're supporting is fantastic =)

Declined
Last Updated: 01 Jun 2020 10:49 by ADMIN

row height set in grid definition must apply to all rows in the grid for row virtualization as of now. 

in real business case there might be complex content in each row that can't reinforce this - but if each row report its own height, grid still can visualize the load, and it will be much more flexible. 

Completed
Last Updated: 26 May 2020 00:56 by ADMIN
Release 2.14.0

In the following reproducible, try filtering the third column (SomeNavigationProperty.Field1). It does not work.

<TelerikGrid Data="@myData" Pageable="true" Sortable="true" FilterMode="@GridFilterMode.FilterRow" Groupable="true">
    <GridColumns>
        <GridColumn Field="@nameof(SampleComplexObject.ID)" Title="ID"></GridColumn>
        <GridColumn Field="@nameof(SampleComplexObject.Name)" Title="The Name"></GridColumn>
        <GridColumn Title="First Nested Property" Field="SomeNavigationProperty.Field1" />
        <GridColumn Field="SomeNavigationProperty.OtherField" />
    </GridColumns>
</TelerikGrid>


@code {
    public class SampleComplexObject
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public NestedObject SomeNavigationProperty { get; set; } // use this field name for data binding
    }

    public class NestedObject
    {
        public int Field1 { get; set; }
        public string OtherField { get; set; }
    }

    public IEnumerable<SampleComplexObject> myData = Enumerable.Range(1, 50).Select(x =>
            new SampleComplexObject
            {
                ID = x,
                Name = "Name " + x,
                SomeNavigationProperty = new NestedObject
                {
                    Field1 = x,
                    OtherField = "second " + x % 6
                }
            }
        );
}
Completed
Last Updated: 26 May 2020 00:55 by ADMIN
Release 2.14.0
When enabling keyboard navigation the DropDownList (does not expand the dropdown) and Numeric Textbox (the cell is losing focus when changing the value with the arrows) do not work properly. 
Completed
Last Updated: 21 May 2020 14:14 by ADMIN
Release 2.13.0
Created by: Earl
Comments: 12
Category: Grid
Type: Feature Request
74

Hello,

I am new to your Blazor UI components.  Please provide a link for exporting a grid to excel.

 

Thanks,

 

Earl

 

Completed
Last Updated: 21 May 2020 13:20 by ADMIN
Release 2.3.0
Created by: Rick
Comments: 3
Category: Grid
Type: Feature Request
13
Need ability to resize grid columns, currently only supports static width setting.  Please add Resizable similar to other Telerik grids.
Completed
Last Updated: 19 May 2020 07:25 by ADMIN
Release 2.14.0
Having a popup opened (such as the  filter menu or a date picker) and scrolling (or clicking a scrollbar - be that on the grid or not) throws an exception in WASM scenario. The error is "Error: Unknown edit type: 0"
Completed
Last Updated: 11 May 2020 08:25 by ADMIN
Release 2.13.0
I would like the children table row, when using the Grid to showcase details like in the Grid Hierarchy, to pick up the classes from their parent table row.
Unplanned
Last Updated: 10 May 2020 13:06 by Lee

For example, I'd like something like this:
Field Name: record.TotalSales -> Auto-generated column title: "Total Sales" with inserted space

ADMIN EDIT: See also the idea below about "AutoGeneratedTitles" Func<string, string> property where the user could perform whatever processing they liked upon the default value. Please leave your comment on what approach you would prefer to be exposed.

Completed
Last Updated: 29 Apr 2020 16:05 by ADMIN
Release 2.11.0

I want to fetch grid records page per page according to the appropriate filter settings. While this is possible through the OnRead event, I want to be able to send the request to the server so that it is easier to fetch the data, like in the UI for ASP.NET Core grid. Currently you can do this only for a server-side project because you can pass the request object by reference, but for a WASM project it needs to serialize in an HTTP request.

---

ADMIN EDIT

You can find examples of doing this here: https://github.com/telerik/blazor-ui/tree/master/grid/datasourcerequest-on-server

---