Declined
Last Updated: 23 Sep 2022 15:57 by ADMIN

Hello, 

as you can see in the provided example : https://blazorrepl.telerik.com/GwEsxPFc05zxpF2u01

i have set a filter for column Country on OnStateInitHandler event. However when  i try to clear the filter from the filtermenutemplate button , Check box has the previous value. But data are bound correctly.

Could you give me some advice?

Unplanned
Last Updated: 20 Sep 2022 11:46 by Paul
Created by: Paul
Comments: 0
Category: Grid
Type: Feature Request
2
I would like to add a custom CSS class to the footer cell of each Grid column to cascade some custom styles easily. 
Duplicated
Last Updated: 13 Sep 2022 08:13 by ADMIN

Description

When the state is loaded and there is a value in the search box, the X (clear button) is missing. 

Reproduction (if bug)

  1. Create a Grid, set a SearchBox in the toolbar.
  2. Set value in the SearchBox.
  3. Save state.
  4. Refresh the page and apply the state.
  5. The value is present in the searchbox but the X icon is missing.

Expected (if bug)

The X icon should be visible.

Browser (if bug)
All

Project type (if bug)
All

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

Unplanned
Last Updated: 12 Sep 2022 11:19 by ADMIN

Trying the custom GridCommandButtons. When recieving the event, the CommandName of  the GridCommandEventArgs is always null. Shouldn't this be the name of the command I specified on the command?

 Explore you example at
https://docs.telerik.com/blazor-ui/components/grid/toolbar#custom-commands

 When private void MyCommandFromToolbar(GridCommandEventArgs args) is triggered, I expect the command name to be MyToolbarCommand

Unplanned
Last Updated: 09 Sep 2022 13:47 by Susan

Description

OnRead event is triggered multiple times when the page is different from the first one and the page size is changed.

Reproduction (if bug)

1. Create a grid and set the pageable and page sizes options

2. Navigate to a page different from the first one.

3. Change the page size.

4. The OnRead event is triggered twice.

Sample REPL for reproduction.

Browser (if bug)
All

Project type (if bug)
All

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

Unplanned
Last Updated: 08 Sep 2022 08:38 by Coops

Hello,

When a Grid is using multi column headers, and I add one more column in the OnBeforeExport event, this new column has no title in the exported file.

A possible workaround might be to use a column with zero Width and change the width in OnBeforeExport.

@using Telerik.Blazor.Common.Export.Excel
@using Telerik.Blazor.Components.Grid

<TelerikGrid TItem="@FlowRun"
             Pageable="true"
             OnRead="@GetData">

    <GridToolBar>
        <GridCommandButton Command="ExcelExport" Icon="file-excel">Export to Excel</GridCommandButton>
        <GridCommandButton Command="CsvExport" Icon="file-csv">Export to CSV</GridCommandButton>
        <label class="k-checkbox-label"><TelerikCheckBox @bind-Value="@ExportAllPages" />Export All Pages</label>
    </GridToolBar>

    <GridExport>
        <GridExcelExport FileName="telerik-grid-export" AllPages="@ExportAllPages" OnBeforeExport="@BeforeExcelExport" />
        <GridCsvExport FileName="telerik-grid-export" AllPages="@ExportAllPages" OnBeforeExport="@BeforeCsvExport" />
    </GridExport>

    <GridColumns>
        <GridColumn Field="@nameof(FlowRun.FileName)" Title="File Name" Width="300px" />
        <GridColumn Field="@nameof(FlowRun.Type)" Title="Type" Width="100px" />
        <GridColumn Field="@nameof(FlowRun.FileSize)" Title="File Size" Width="200px" />
        <GridColumn Title="Source">
            <Columns>
                <GridColumn Field="@(nameof(FlowRun.Source))" Title="MPID"/>
                <GridColumn Field="@(nameof(FlowRun.SourceFileProtocol))" Title="Type" />
            </Columns>
        </GridColumn>
        <GridColumn Field="@nameof(FlowRun.ErrorMessage)"
                    Title = "Error"
                    Width="0" />
    </GridColumns>
</TelerikGrid>

@code {
    bool ExportAllPages { get; set; }

    private async Task GetData(GridReadEventArgs args)
    {
        args.Data = Enumerable.Range(1, 10).Select(x => new FlowRun
            {
                FileName = $"File {x}",
                Type = $"Type {x}",
                FileSize = x * 2,
                Source = $"Source {x}",
                SourceFileProtocol = FileProtocol.CIX,
                ErrorMessage = $"Error {x}"
            }).ToList();

        args.Total = 100;
    }

    private void BeforeCsvExport(GridBeforeCsvExportEventArgs obj)
    {
        AddErrorMessageColumn(obj);
    }

    private void BeforeExcelExport(GridBeforeExcelExportEventArgs obj)
    {
        AddErrorMessageColumn(obj);
    }

    private void AddErrorMessageColumn(GridBeforeSpreadsheetExportEventArgs args)
    {
        args.Columns.Find(x => x.Field == nameof(FlowRun.ErrorMessage)).Width = "100px";

        //args.Columns.Add(new ExcelExportableColumn
        //{            
        //    Field = nameof(FlowRun.ErrorMessage),
        //    Title = "Error"
        //});
    }

    public class FlowRun
    {
        public string FileName { get; set; }
        public string Type { get; set; }
        public long? FileSize { get; set; }
        public string Source { get; set; }
        public FileProtocol SourceFileProtocol { get; set; }
        public string ErrorMessage { get; set; }
    }

    public enum FileProtocol
    {
        Unknown,
        PIX,
        CIX,
        SS
    }
}

Duplicated
Last Updated: 29 Aug 2022 10:26 by Sofronis

As you can see in the provided example : https://blazorrepl.telerik.com/QcaiPbkL56qf6XQ747

I have the following situation. I'm using a custom editor template with two-way binding for the  column : OrderToEdit.ShipCity. If I change the value of this column in a row and press Enter, Tab or mouse focus out very quickly (immediately after value change),  UpdateHandler is triggered before the valueChanged event of the context and as a result changes are not shown. If there is a delay ( i.e 1 second ) all works fine. This is not happening when i'm using the builtin editor GridEditorType.TextBox. Could you provide me a solution ? 

There is another problem. if a click inside a cell edit mode is triggered. But if i click in a button in the toolbar or in column menu the cell remains open is not closed. I think this should not happen.

Completed
Last Updated: 26 Aug 2022 08:12 by ADMIN
Release 3.5.0
Missing form label in Grid Inline Editing mode
Declined
Last Updated: 25 Aug 2022 06:14 by ADMIN
Created by: Arash
Comments: 3
Category: Grid
Type: Bug Report
0

Hi,

We ran into an issue with manual binding and selected items with Grid component. I used the 'WebApiFromServerApp' sample in 'grid\datasourcerequest-on-server' folder from Telerik's samples on GitHub.

To recreate the issue, modify 'GridWithService.razor' file in 'WebApiFromServerApp' project. I attached modified project.

To test the behavior: 

  1. Select records with Id 2 and 3 from grid.
  2. Navigate to another page and return back to the first one.
  3. Despite selected items exist in the grid's 'SelectedItems', but they are not being shown. This is the first issue.
  4. The second issue is you can still select them again! In that case they would be duplicated as selected items.

Thank you.

 

 

 

 

Unplanned
Last Updated: 09 Aug 2022 13:07 by Software

The CheckBoxList filter does not work as expected when the Grid is bound to ExpandoObject

===

ADMIN EDIT: A possible workaround is to bind the Grid with OnRead event and populate the MemberType property of the filter descriptors manually:

@using System.Dynamic
@using Telerik.DataSource
@using Telerik.DataSource.Extensions

<TelerikGrid OnRead="@OnGridRead"
             TItem="@ExpandoObject"
             Pageable="true"
             Sortable="true"
             FilterMode="@GridFilterMode.FilterMenu"
             FilterMenuType="@FilterMenuType.CheckBoxList"
             Height="400px">
    <GridToolBarTemplate>
        <GridSearchBox />
    </GridToolBarTemplate>
    <GridColumns>
        @{
            if (GridData != null && GridData.Any())
            {
                <GridColumn Field="PropertyInt" FieldType="@GridPropertyTypes["PropertyInt"]" />
                <GridColumn Field="PropertyString" FieldType="@GridPropertyTypes["PropertyString"]" />
                <GridColumn Field="PropertyGroup" FieldType="@GridPropertyTypes["PropertyString"]" />
                <GridColumn Field="PropertyDate" FieldType="@GridPropertyTypes["PropertyDate"]" />
                <GridColumn Field="PropertyBool" FieldType="@GridPropertyTypes["PropertyBool"]" />
            }
        }
    </GridColumns>
</TelerikGrid>

@code {
    private List<ExpandoObject> GridData { get; set; } = new List<ExpandoObject>();

    private Dictionary<string, Type> GridPropertyTypes { get; set; } = new Dictionary<string, Type>() {
        { "Id", typeof(int) },
        { "PropertyInt", typeof(int) },
        { "PropertyString", typeof(string) },
        { "PropertyGroup", typeof(string) },
        { "PropertyDate", typeof(DateTime) },
        { "PropertyBool", typeof(bool) }
    };

    private async Task OnGridRead(GridReadEventArgs args)
    {
        args.Request.Filters.OfType<CompositeFilterDescriptor>()
        .Each(x =>
        {
            x.FilterDescriptors.OfType<FilterDescriptor>()
                .Each(y => y.MemberType = GridPropertyTypes[y.Member]);
        });

        var result = GridData.ToDataSourceResult(args.Request);

        args.Data = result.Data;
        args.Total = result.Total;
        args.AggregateResults = result.AggregateResults;
    }

    protected override void OnInitialized()
    {
        for (int i = 1; i <= 18; i++)
        {
            dynamic expando = new ExpandoObject();

            expando.Id = i;
            expando.PropertyGroup = $"Group {(i % 3 + 1)}";
            expando.PropertyInt = i;
            expando.PropertyString = $"String {(char)(64 + i)}{(char)(64 + i)}";
            expando.PropertyDate = DateTime.Now.AddMonths(-i);
            expando.PropertyBool = i % 2 != 0;

            GridData.Add(expando);
        }
    }
}

Completed
Last Updated: 09 Aug 2022 07:44 by ADMIN
Release 3.6.0 (14 Sep 2022) (R3 2022)
Field and Value properties from GridCommandEventArgs don't populate in Incell editing. Their value is always null and thus I cannot get information for the edited field.
Unplanned
Last Updated: 28 Jul 2022 06:21 by ITC

Hello,

I want to set AutoGenerateColumns="true", but exclude some of the class members (fields / columns), which I have declared manually in the GridColumns collection.

Completed
Last Updated: 22 Jul 2022 08:03 by ADMIN
Release 3.5.0
Created by: Viacheslav
Comments: 0
Category: Grid
Type: Bug Report
1

Navigable="true" + OnRead data binding allow the user to go beyond the last Grid page. The component shows no rows, and even though the user can return to previous pages, it's cumbersome.

The workaround is to manage the Page value manually in the PageChanged handler.

@using Telerik.DataSource.Extensions

@*  workaround:  *@

@*Page="@GridPage"
PageChanged="@OnGridPageChanged"*@

<TelerikGrid OnRead="@OnGridRead"
             Navigable="true"
             TItem="@Product"
             Pageable="true">
    <GridColumns>
        <GridColumn Field="@nameof(Product.Name)" Title="Product Name" />
    </GridColumns>
</TelerikGrid>

@code {
    List<Product> GridData { get; set; }
    int GridPage { get; set; } = 1;
    int GridTotal { get; set; }

    // workaround
    void OnGridPageChanged(int newPage)
    {
        if (newPage > 0 && newPage <= Math.Ceiling((double)GridTotal / (double)10))
        {
            GridPage = newPage;
        }
    }

    void OnGridRead(GridReadEventArgs args)
    {
        var result = GridData.ToDataSourceResult(args.Request);

        args.Data = result.Data;
        args.Total = result.Total;

        // workaround
        //GridTotal = result.Total;
    }

    protected override void OnInitialized()
    {
        GridData = new List<Product>();
        var rnd = new Random();

        for (int i = 1; i <= 12; i++)
        {
            GridData.Add(new Product()
            {
                Id = i,
                Name = "Product " + i.ToString()
            });
        }
    }

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

Completed
Last Updated: 20 Jul 2022 07:04 by ADMIN
Release 3.5.0
When trying to navigate through the FilterRow inputs with Tab, I'm not getting the result described in the documentation. When the filter input or filter buttons are focused, pressing Tab should cycle through all the inputs in the FilterRow.

Currently, you can't go through the inputs in the FilterRow using Tab. When pressing it the focus goes through different elements on the page.


Completed
Last Updated: 14 Jul 2022 11:55 by ADMIN
Release 3.5.0

When Grid is nested in a Window, pressing Escape key will bubble to the Window causing it to close during edit operation of the Grid.

  1. Go to https://blazorrepl.telerik.com/mQaUcSlP59yrfqmM16 
  2. Trigger Grid's keyboard navigation.
  3. Press Escape(whether it is to close an Editor, or not).
  4. Observe Window will close.
Unplanned
Last Updated: 12 Jul 2022 06:51 by ADMIN
Created by: SaiSivaSankar
Comments: 1
Category: Grid
Type: Feature Request
14
I would like to exclude the group header from the horizontal scroll - that is, the group header must always be visible regardless of how the user scrolls the grid left and right, like a Locked column.
Completed
Last Updated: 04 Jul 2022 14:04 by Hans
Release 3.4.0
Created by: Jan Heiko Houtrouw
Comments: 8
Category: Grid
Type: Feature Request
11

Hello Team,

 

I am using "FilterMode="GridFilterMode.FilterRow". For int values there is a "numeric chooser" in the column header and the filter option "contains" is not available.

This is the correct behaviour. But when I bind the column to a ulong, ushort, ... value theses seems to be considered as string. There is no "numeric chooser"  and the filter "contains" is available, which resullts in further problems with the OData endpoint.

 

 

Declined
Last Updated: 04 Jul 2022 11:23 by ADMIN

Hi,

When we use custom filters with FilterMenuTemplate in combination with setting filters programmatically, the filter value remains visible after using the 'delete' button.

Simplified example:

  1. First we load a filter programmatically by the button, this works fine:

  2. When user uses the Delete button, the grid state loses the FilterDescriptor and we get all the data as expected (also the filter icon loses the green color, as expected because no filter is active)

  3. When user reopens the filter menu, the value which was loaded programmatically is still present, without being used as a filter:

Note: We have the same issue with a custom filter with a checkbox list and that code is based on the example of the filter menu template in the documentation.

Note 2: When we use the custom filters and the 'Delete' button without setting the filters programmatically, everything works fine.

It's like the 'Delete' button clears the FilterDescriptors in de Grid State (and we get the data we expect), but the FilterDescriptors in the FilterMenuTemplateContext aren't cleared.. But only when those are set programmatically.. (by setting the grid state).

I already tried to think of a workaround by hooking the OnStateChanged, but there the FilterDescriptors on the grid state are empty when the 'Delete' button is used. As expected, because we get the data we want.. But don't think I can access the FilterMenuTemplateContext there, to clear it as well..

Unplanned
Last Updated: 30 Jun 2022 10:32 by KPCIT
Created by: KPCIT
Comments: 0
Category: Grid
Type: Feature Request
2
I would like to cancel the OnExpand and OnCollapse events. 
Completed
Last Updated: 13 Jun 2022 13:58 by ADMIN
Release 3.4.0
Created by: Bernard
Comments: 0
Category: Grid
Type: Bug Report
2

I noticed Telerik Blazor grid is rendered into two tables. One for the headers and one for the contents.

My assumption is that Allyable Scan expects to find a th element inside the second table and it did not find any. Is my assumption correct? 

Element source:

<table role="grid" style="width: ;">