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); + } } ///