diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 5b28c7ba3bc..37c72057775 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 9.2.9-beta03 + 9.2.9-beta04 diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs index 717244d5ed4..c9167a32291 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs @@ -392,7 +392,7 @@ protected void OnClickCardView() StateHasChanged(); } - private async Task QueryAsync(bool shouldRender, int? pageIndex = null) + private async Task QueryAsync(bool shouldRender, int? pageIndex = null, bool triggerByPagination = false) { if (ScrollMode == ScrollMode.Virtual && VirtualizeElement != null) { @@ -405,7 +405,7 @@ private async Task QueryAsync(bool shouldRender, int? pageIndex = null) { PageIndex = pageIndex.Value; } - await QueryData(); + await QueryData(triggerByPagination); await InternalToggleLoading(false); } @@ -451,12 +451,14 @@ protected async ValueTask InternalToggleLoading(bool state) /// /// 调用 OnQuery 回调方法获得数据源 /// - protected async Task QueryData() + protected async Task QueryData(bool triggerByPagination = false) { // 目前设计使用 Items 参数后不回调 OnQueryAsync 方法 if (Items == null) { var queryOption = BuildQueryPageOptions(); + // 是否为分页查询 + queryOption.TriggerByPagination = triggerByPagination; // 设置是否为首次查询 queryOption.IsFirstQuery = _firstQuery; diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Pagination.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Pagination.cs index ae0311ac5a1..af397e41509 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Pagination.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Pagination.cs @@ -165,7 +165,7 @@ protected async Task OnPageLinkClick(int pageIndex) } // 无刷新查询数据 - await QueryAsync(false); + await QueryAsync(false, triggerByPagination: true); // 通知 SelectedRow 双向绑定集合改变 await OnSelectedRowsChanged(); diff --git a/src/BootstrapBlazor/Options/QueryPageOptions.cs b/src/BootstrapBlazor/Options/QueryPageOptions.cs index 752bd5d8ecc..a9794bd88bd 100644 --- a/src/BootstrapBlazor/Options/QueryPageOptions.cs +++ b/src/BootstrapBlazor/Options/QueryPageOptions.cs @@ -124,4 +124,9 @@ public class QueryPageOptions /// /// 组件首次查询数据时为 true public bool IsFirstQuery { get; set; } + + /// + /// 获得 是否为刷新分页查询 默认 false + /// + public bool TriggerByPagination { get; set; } } diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index d1d9e32ede3..181dd11b77b 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -1070,6 +1070,7 @@ public void IsAutoQueryFirstQuery_Ok() { var isFirstQuery = true; var isQuery = false; + var triggerByPagination = true; var localizer = Context.Services.GetRequiredService>(); var cut = Context.RenderComponent(pb => { @@ -1082,6 +1083,7 @@ public void IsAutoQueryFirstQuery_Ok() { isQuery = true; isFirstQuery = option.IsFirstQuery; + triggerByPagination = option.TriggerByPagination; return Task.FromResult(new QueryData() { Items = Array.Empty(), @@ -1105,6 +1107,7 @@ public void IsAutoQueryFirstQuery_Ok() // 首次加载为 true Assert.True(isFirstQuery); Assert.False(isQuery); + Assert.True(triggerByPagination); // 二次查询 var table = cut.FindComponent>(); @@ -1112,6 +1115,7 @@ public void IsAutoQueryFirstQuery_Ok() Assert.False(isFirstQuery); Assert.True(isQuery); + Assert.False(triggerByPagination); } [Fact]