Blazorise DataGrid: Paging
Paging provides an option to display DataGrid data in pages.
Overview
With the paging enabled, users can easily navigate the DataGrid by clicking on a page button. This can be particularly useful when working with large sets of data.
Examples
Paging
Paging is handled automatically by the DataGrid
. To show the pager you need to enable the ShowPager
parameter.
To show the pager you need to enable the ShowPager
parameter.
PageSize
the maximum number of items for each page.CurrentPage
current page number.PreviousPageButtonTemplate
template for previous page buttonNextPageButtonTemplate
template for next page buttonFirstPageButtonTemplate
template for first page buttonLastPageButtonTemplate
template for last page buttonPageButtonTemplate
template for explicated page button withPageButtonContext
as parameterPagerOptions
will provide you with additional settings to customize your pager.
Pager Customization Example
Below you will find a fully customized pager.<DataGrid TItem="Employee" Data="" @bind-SelectedRow="" Responsive ShowPager ShowPageSizes PagerPosition="DataGridPagerPosition.TopAndBottom" PagerOptions="new(){ ButtonSize=Size.Small }"> <DataGridColumns> <DataGridCommandColumn /> <DataGridColumn Field="@nameof(Employee.Id)" Caption="#" Sortable="false" /> <DataGridColumn Field="@nameof(Employee.FirstName)" Caption="First Name" Editable /> <DataGridColumn Field="@nameof(Employee.LastName)" Caption="Last Name" Editable /> <DataGridColumn Field="@nameof(Employee.Email)" Caption="Email" Editable /> <DataGridColumn Field="@nameof(Employee.Salary)" Caption="Salary" DisplayFormat="{0:C}" DisplayFormatProvider="@System.Globalization.CultureInfo.GetCultureInfo("fr-FR")" Editable> <EditTemplate> <NumericEdit TValue="decimal" Value="@((decimal)context.CellValue)" ValueChanged="@( v => context.CellValue = v)" /> </EditTemplate> </DataGridColumn> </DataGridColumns> <PageButtonTemplate> <Span TextColor="TextColor.Success"> @context.PageNumber </Span> </PageButtonTemplate> <NextPageButtonTemplate><Icon Name="IconName.StepForward" TextColor="TextColor.Success" /></NextPageButtonTemplate> <PreviousPageButtonTemplate><Icon Name="IconName.StepBackward" TextColor="TextColor.Success" /></PreviousPageButtonTemplate> <LastPageButtonTemplate><Icon Name="IconName.Forward" TextColor="TextColor.Success" /></LastPageButtonTemplate> <FirstPageButtonTemplate><Icon Name="IconName.Backward" TextColor="TextColor.Success" /></FirstPageButtonTemplate> <TotalItemsTemplate><Badge Color="Color.Success">@context.TotalItems total items</Badge></TotalItemsTemplate> <TotalItemsShortTemplate><Badge Color="Color.Success">@context.TotalItems</Badge></TotalItemsShortTemplate> <ItemsPerPageTemplate></ItemsPerPageTemplate> <PageSelectorTemplate> <Select TextColor="TextColor.Success" @bind-SelectedValue="@context.CurrentPage" Size="Size.Small"> @for ( int i = context.FirstVisiblePage; i <= context.LastVisiblePage; ++i ) { var pageNumber = i; <SelectItem Value="">@pageNumber</SelectItem> } </Select> </PageSelectorTemplate> <PageSizesTemplate> <Select TextColor="TextColor.Success" @bind-SelectedValue="@context.CurrentPageSize" Size="Size.Small"> @foreach ( var curPageSize in context.PageSizes ) { <SelectItem Value="">@curPageSize</SelectItem> } </Select> </PageSizesTemplate> </DataGrid>
@code{ [Inject] public EmployeeData EmployeeData { get; set; } private List<Employee> employeeList; private Employee selectedEmployee; protected override async Task OnInitializedAsync() { employeeList = await EmployeeData.GetDataAsync(); await base.OnInitializedAsync(); } }
API
See the documentation below for a complete reference to all of the props and classes available to the components mentioned here.