diff --git a/src/MudBlazor.UnitTests/Components/DataGridTests.cs b/src/MudBlazor.UnitTests/Components/DataGridTests.cs index 5b7f34ea208..74d31325e58 100644 --- a/src/MudBlazor.UnitTests/Components/DataGridTests.cs +++ b/src/MudBlazor.UnitTests/Components/DataGridTests.cs @@ -519,6 +519,20 @@ public async Task DataGridPaginationTest() // navigate back to the first page programmatically await comp.InvokeAsync(() => dataGrid.Instance.NavigateTo(Page.First)); dataGrid.Instance.CurrentPage.Should().Be(0); + + // Test MudPagination int base NavigateTo + int pagecount = (int)Math.Ceiling((double)(dataGrid.Instance.Items.Count() / dataGrid.Instance.RowsPerPage)); + // navigate to the last page programmatically + await comp.InvokeAsync(() => dataGrid.Instance.NavigateTo(pagecount - 1)); + dataGrid.Instance.CurrentPage.Should().Be(4); + + // navigate to the previous page programmatically + await comp.InvokeAsync(() => dataGrid.Instance.NavigateTo(dataGrid.Instance.CurrentPage - 1)); + dataGrid.Instance.CurrentPage.Should().Be(3); + + // navigate back to the first page programmatically + await comp.InvokeAsync(() => dataGrid.Instance.NavigateTo(0)); + dataGrid.Instance.CurrentPage.Should().Be(0); } diff --git a/src/MudBlazor/Components/DataGrid/MudDataGrid.razor.cs b/src/MudBlazor/Components/DataGrid/MudDataGrid.razor.cs index 779417747c4..9694400aba6 100644 --- a/src/MudBlazor/Components/DataGrid/MudDataGrid.razor.cs +++ b/src/MudBlazor/Components/DataGrid/MudDataGrid.razor.cs @@ -1190,6 +1190,17 @@ public void NavigateTo(Page page) GroupItems(); } + /// + /// Navigates to a specific page when the data grid has an attached MudPagination component. + /// + /// Index of the page to navigate to. + public void NavigateTo(int pageIndex) + { + CurrentPage = Math.Min(Math.Max(0, pageIndex), numPages - 1); + + GroupItems(); + } + /// /// Sets the rows displayed per page when the data grid has an attached data pager. ///