«
@for (int i = 1; i <= LastPage; ++i)
{
var pageNum = i;
@pageNum
}
»
@totalCount records
@code {
void HandlePaginationItemClick(string page)
{
currPage = int.Parse(page);
reportChangePage();
}
private int LastPage
{
get
{
return Math.Max((int)Math.Ceiling(totalCount / (double)PageSize), 1);
}
}
[Parameter]
public int totalCount { get; set; } = 0;
protected int _numRecord { get; set; } = 10;
protected int _numPage { get; set; } = 1;
[Parameter]
public int PageSize
{
get
{
return _numRecord;
}
set
{
bool doReport = !_numRecord.Equals(value);
if (doReport)
{
_numRecord = value;
reportChange();
}
}
}
[Parameter]
public int currPage
{
get
{
return _numPage;
}
set
{
bool doReport = !_numPage.Equals(value);
if (doReport)
{
_numPage = value;
reportChangePage();
}
}
}
[Parameter]
public EventCallback numRecordChanged { get; set; }
[Parameter]
public EventCallback numPageChanged { get; set; }
private void reportChange()
{
numRecordChanged.InvokeAsync(PageSize);
}
private void reportChangePage()
{
numPageChanged.InvokeAsync(currPage);
}
}