Megabit / Blazorise

Blazorise is a component library built on top of Blazor with support for CSS frameworks like Bootstrap, Tailwind, Bulma, AntDesign, and Material.
https://blazorise.com/
Other
3.18k stars 517 forks source link

DataGrid: Add AutoGenerateColumns parameter #5493

Closed David-Moreira closed 2 months ago

David-Moreira commented 2 months ago

To Test:

User is now able to disable the feature and make his own dynamic implementation at will.

<Button Color="Color.Primary" Clicked="AddColumns">Add dynamic columns</Button>

<DataGrid TItem="Book"
          Data="@Books"
          Responsive
          ShowPager
          ShowPageSizes
          AutoGenerateColumns=false>
    <DataGridColumns>
        @if ( Columns != null )
        {
            @foreach ( var column in Columns )
            {
                <DataGridColumn TItem="Book" Field="@column.Key" Caption="@column.Value">

                </DataGridColumn>
            }
        }
    </DataGridColumns>
</DataGrid>

@code {

    public class Book
    {
        public string Name { get; set; }

        public string Author { get; set; }
    }

    List<Book> Books = new();
    Dictionary<string, string> Columns;

    Task AddColumns()
    {
        Columns = new Dictionary<string, string>
        {
            { nameof(Book.Name), "Name" },
            { nameof(Book.Author), "Author" }
        };

        return Task.CompletedTask;
    }

}

image image

Still auto generates columns: https://localhost:5001/tests/datagrid/auto-generate-columns

image