Pager, DataGrid and DataList PageSizeOptions property added

This commit is contained in:
Vladimir Enchev
2021-06-16 14:00:50 +03:00
parent 05b7f6dbe9
commit 514b00f7af
5 changed files with 32 additions and 6 deletions

View File

@@ -49,6 +49,9 @@ namespace Radzen
}
}
[Parameter]
public IEnumerable<int> PageSizeOptions { get; set; }
protected IQueryable<T> _view = null;
public virtual IQueryable<T> PagedView
{
@@ -148,6 +151,12 @@ namespace Radzen
await InvokeAsync(Reload);
}
protected async Task OnPageSizeChanged(int value)
{
PageSize = value;
await InvokeAsync(Reload);
}
protected void CalculatePager()
{
if (topPager != null)

View File

@@ -19,7 +19,7 @@
<div @ref=@Element style="@Style" @attributes="Attributes" class="rz-data-grid @GetCssClass()" id="@GetId()">
@if (AllowPaging && (PagerPosition == PagerPosition.Top || PagerPosition == PagerPosition.TopAndBottom))
{
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" />
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" PageSizeChanged="@OnPageSizeChanged" PageSizeOptions="@PageSizeOptions" />
}
<div class="rz-data-grid-data">
@@ -314,7 +314,7 @@
@if (AllowPaging && (PagerPosition == PagerPosition.Bottom || PagerPosition == PagerPosition.TopAndBottom))
{
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" />
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" PageSizeChanged="@OnPageSizeChanged" PageSizeOptions="@PageSizeOptions" />
}
</div>
}

View File

@@ -6,7 +6,7 @@
<div @ref="@Element" @attributes="Attributes" class="@GetCssClass()" style="@Style" id="@GetId()">
@if (AllowPaging && (PagerPosition == PagerPosition.Top || PagerPosition == PagerPosition.TopAndBottom))
{
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" />
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" PageSizeChanged="@OnPageSizeChanged" PageSizeOptions="@PageSizeOptions" />
}
@if (Data != null)
{
@@ -47,7 +47,7 @@
}
@if (AllowPaging && (PagerPosition == PagerPosition.Bottom || PagerPosition == PagerPosition.TopAndBottom))
{
<RadzenPager @ref="bottomPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" class="rz-paginator-bottom" />
<RadzenPager @ref="bottomPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" PageSizeChanged="@OnPageSizeChanged" PageSizeOptions="@PageSizeOptions" class="rz-paginator-bottom" />
}
</div>
}

View File

@@ -20,7 +20,7 @@
<div @ref="@Element" style="@Style" @attributes="Attributes" class="@GetCssClass()" id="@GetId()">
@if (AllowPaging && (PagerPosition == PagerPosition.Top || PagerPosition == PagerPosition.TopAndBottom))
{
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" />
<RadzenPager @ref="topPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" PageSizeChanged="@OnPageSizeChanged" PageSizeOptions="@PageSizeOptions" />
}
<div class="rz-datatable-scrollable-wrapper rz-helper-clearfix" style="">
<div class="rz-datatable-scrollable-view">
@@ -477,7 +477,7 @@
@if (AllowPaging && (PagerPosition == PagerPosition.Bottom || PagerPosition == PagerPosition.TopAndBottom))
{
<RadzenPager @ref="bottomPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" class="rz-paginator-bottom" />
<RadzenPager @ref="bottomPager" Count="@Count" PageSize="@PageSize" PageNumbersCount="@PageNumbersCount" PageChanged="@OnPageChanged" PageSizeChanged="@OnPageSizeChanged" PageSizeOptions="@PageSizeOptions" class="rz-paginator-bottom" />
}
</div>
}

View File

@@ -51,6 +51,10 @@
<span class="rz-paginator-icon rzi rzi-step-forward"></span>
</a>
}
@if(PageSizeOptions != null && PageSizeOptions.Any())
{
<RadzenDropDown TValue="int" Data="@PageSizeOptions" Value="@PageSize" Change="@OnPageSizeChanged" />
}
</div>
}
@code {
@@ -62,6 +66,12 @@
[Parameter]
public int PageSize { get; set; } = 10;
[Parameter]
public EventCallback<int> PageSizeChanged { get; set; }
[Parameter]
public IEnumerable<int> PageSizeOptions { get; set; }
[Parameter]
public int PageNumbersCount { get; set; } = 5;
@@ -94,6 +104,13 @@
return base.OnParametersSetAsync();
}
protected async Task OnPageSizeChanged(object value)
{
PageSize = (int)value;
await InvokeAsync(Reload);
await PageSizeChanged.InvokeAsync((int)value);
}
protected int skip;
protected int numberOfPageLinks = 5;
protected int startPage;