From e7294275a302d9c0fa158476c23f1bcce0260c92 Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Fri, 1 Jul 2022 21:09:47 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E7=AD=89=E5=86=85=E9=83=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs index 905f90880..6bc16e57c 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Edit.cs @@ -472,10 +472,7 @@ public partial class Table ProcessSelectedRows(); // 分页情况下内部不做处理防止页码错乱 - if (!queryOption.IsPage) - { - ProcessPageData(queryData, queryOption); - } + ProcessData(queryData, queryOption); if (IsTree) { @@ -515,7 +512,7 @@ public partial class Table SelectedRows = rows; } - void ProcessPageData(QueryData queryData, QueryPageOptions queryOption) + void ProcessData(QueryData queryData, QueryPageOptions queryOption) { var filtered = queryData.IsFiltered; var sorted = queryData.IsSorted; -- Gitee From 5393997ebfa2447afc27f0c539c10510797d5e5f Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Fri, 1 Jul 2022 21:27:35 +0800 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=94=B9=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.Sort.cs | 4 ++-- src/BootstrapBlazor/Components/Table/Table.razor.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Sort.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Sort.cs index 8187ef0e2..4279e24b8 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Sort.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Sort.cs @@ -53,7 +53,7 @@ public partial class Table /// 获得/设置 内部表头排序时回调方法 /// [NotNull] - protected Func? IntenralOnSortAsync { get; set; } + protected Func? InternalOnSortAsync { get; set; } /// /// 点击列进行排序方法 @@ -76,7 +76,7 @@ public partial class Table SortName = col.GetFieldName(); // 通知 Table 组件刷新数据 - await IntenralOnSortAsync(SortName, SortOrder); + await InternalOnSortAsync(SortName, SortOrder); }; /// diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index ee12fefe7..69e10d16c 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -669,7 +669,7 @@ public partial class Table : BootstrapComponentBase, IDisposable, ITable Interop = new JSInterop>(JSRuntime); // 设置 OnSort 回调方法 - IntenralOnSortAsync = async (sortName, sortOrder) => + InternalOnSortAsync = async (sortName, sortOrder) => { // 调用 OnSort 回调方法 if (OnSort != null) -- Gitee From 03e3a6fee1863cbcc521f0fa1792ce6c5cf4de0a Mon Sep 17 00:00:00 2001 From: Argo-Lenovo Date: Fri, 1 Jul 2022 21:27:50 +0800 Subject: [PATCH 3/3] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=20OnSort=20?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TableTest.cs | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index 7ae1652fa..8089816ab 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -1653,6 +1653,42 @@ public class TableTest : TableTestBase await cut.InvokeAsync(() => table.Instance.QueryAsync()); } + [Fact] + public async Task OnSort_Ok() + { + // 外部未排序,组件内部自动排序 + var localizer = Context.Services.GetRequiredService>(); + var cut = Context.RenderComponent(pb => + { + pb.AddChildContent>(pb => + { + pb.Add(a => a.RenderMode, TableRenderMode.Table); + pb.Add(a => a.OnQueryAsync, OnQueryAsync(localizer, isSorted: false)); + pb.Add(a => a.TableColumns, foo => builder => + { + builder.OpenComponent>(0); + builder.AddAttribute(1, "Field", "Name"); + builder.AddAttribute(2, "FieldExpression", Utility.GenerateValueExpression(foo, "Name", typeof(string))); + builder.AddAttribute(3, "Sortable", true); + builder.AddAttribute(4, "DefaultSort", true); + builder.AddAttribute(4, "DefaultSortOrder", SortOrder.Desc); + builder.CloseComponent(); + }); + pb.Add(a => a.SortIcon, "fa fa-sort"); + }); + }); + + var name = cut.Find("td").TextContent; + Assert.Contains("0005", name); + + // click sort + var sort = cut.Find("th"); + await cut.InvokeAsync(() => sort.Click()); + + name = name = cut.Find("td").TextContent; + Assert.Contains("0001", name); + } + [Theory] [InlineData(true)] [InlineData(false)] -- Gitee