From c50fe11529c8b0c479ccb3975e519b96f3ce736d Mon Sep 17 00:00:00 2001 From: Drake53 <49623303+Drake53@users.noreply.github.com> Date: Sat, 2 Apr 2022 10:48:44 +0200 Subject: [PATCH] Fix pager for empty table. --- src/BlazorTable/Components/Pager.razor | 12 ++++++------ src/BlazorTable/Components/Table.razor.cs | 17 ++++++++++++----- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/BlazorTable/Components/Pager.razor b/src/BlazorTable/Components/Pager.razor index 8cd3332e..c4a3b238 100644 --- a/src/BlazorTable/Components/Pager.razor +++ b/src/BlazorTable/Components/Pager.razor @@ -34,17 +34,17 @@ } -
  • - @Localization["PagerFirst"] +
  • + @Localization["PagerFirst"]
  • -
  • - @Localization["PagerPrevious"] +
  • + @Localization["PagerPrevious"]
  • @Localization["PagerNext"]
  • -
  • - @Localization["PagerLast"] +
  • + @Localization["PagerLast"]
  • diff --git a/src/BlazorTable/Components/Table.razor.cs b/src/BlazorTable/Components/Table.razor.cs index 57c959c3..fa64b7d9 100644 --- a/src/BlazorTable/Components/Table.razor.cs +++ b/src/BlazorTable/Components/Table.razor.cs @@ -186,10 +186,14 @@ private IEnumerable GetData() } // if the current page is filtered out, we should go back to a page that exists - if (PageNumber > TotalPages) + if (PageNumber >= TotalPages) { PageNumber = TotalPages - 1; } + else if (PageNumber < 0 && TotalPages > 0) + { + PageNumber = 0; + } // if PageSize is zero, we return all rows and no paging return PageSize <= 0 ? ItemsQueryable.ToList() : ItemsQueryable.Skip(PageNumber * PageSize).Take(PageSize).ToList(); @@ -292,7 +296,7 @@ public void RemoveColumn(IColumn column) /// public async Task FirstPageAsync() { - if (PageNumber != 0) + if (PageNumber > 0) { PageNumber = 0; detailsViewOpen.Clear(); @@ -331,9 +335,12 @@ public async Task PreviousPageAsync() /// public async Task LastPageAsync() { - PageNumber = TotalPages - 1; - detailsViewOpen.Clear(); - await UpdateAsync().ConfigureAwait(false); + if (PageNumber + 1 < TotalPages) + { + PageNumber = TotalPages - 1; + detailsViewOpen.Clear(); + await UpdateAsync().ConfigureAwait(false); + } } ///