quickgrid paging

main
Peace 10 months ago
parent 3b5d5f2458
commit a43abb994d
  1. 34
      HelloBlazorServer/HelloBlazorServer/Components/Pages/QCInMemory.razor
  2. 27
      HelloBlazorServer/HelloBlazorServer/Components/Pages/QCInMemory.razor.css

@ -3,6 +3,9 @@
@rendermode RenderMode.InteractiveServer @rendermode RenderMode.InteractiveServer
<h1><strong>Base</strong></h1>
<hr style="border-inline-end-style" />
<div class="grid"> <div class="grid">
<QuickGrid Items="@itemsQueryable"> <QuickGrid Items="@itemsQueryable">
<PropertyColumn Property="@(c => c.Name)" Sortable="true" /> <PropertyColumn Property="@(c => c.Name)" Sortable="true" />
@ -13,7 +16,38 @@
</QuickGrid> </QuickGrid>
</div> </div>
<br />
<h1><strong>Paging</strong></h1>
<hr style="border-inline-end-style" />
<div class="page-size-chooser">
Items per page:
<select @bind="pagination.ItemsPerPage">
<option>5</option>
<option>10</option>
<option>20</option>
<option>50</option>
</select>
</div>
<div class="grid-25">
<QuickGrid Items="@itemsQueryable" Pagination="@pagination" Virtualize="true">
<PropertyColumn Property="@(c => c.Name)" Sortable="true" Class="country-name" />
<PropertyColumn Property="@(c => c.Gold)" Sortable="true" Align="Align.Right" />
<PropertyColumn Property="@(c => c.Silver)" Sortable="true" Align="Align.Right" />
<PropertyColumn Property="@(c => c.Bronze)" Sortable="true" Align="Align.Right" />
</QuickGrid>
<Paginator State="@pagination" />
</div>
<br />
<h1><strong>Filtering</strong></h1>
<hr style="border-inline-end-style" />
@code { @code {
PaginationState pagination = new PaginationState { ItemsPerPage = 10 };
IQueryable<MedalTally>? itemsQueryable; IQueryable<MedalTally>? itemsQueryable;
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()

@ -4,6 +4,12 @@
overflow-y: auto; overflow-y: auto;
} }
.grid-25 {
height: 25rem;
overflow-y: auto;
}
/* Sticky header while scrolling */ /* Sticky header while scrolling */
::deep thead { ::deep thead {
position: sticky; position: sticky;
@ -15,3 +21,24 @@
::deep tr:nth-child(even) { ::deep tr:nth-child(even) {
background: rgba(255,255,255,0.4); background: rgba(255,255,255,0.4);
} }
::deep th.country-name {
width: 14rem;
}
/* Don't collapse rows even if they are empty */
::deep tbody tr {
height: 1.8rem;
}
.page-size-chooser {
display: flex;
align-items: center;
margin-bottom: 1rem;
}
.page-size-chooser select {
margin: 0 1rem;
padding: 0.25rem 0.5rem;
}
Loading…
Cancel
Save