From 6a0be9c7d7af0f67ae081f0f0fbb770f66ac654f Mon Sep 17 00:00:00 2001 From: yacper Date: Mon, 16 Jun 2025 18:29:47 +0800 Subject: [PATCH 1/8] =?UTF-8?q?bugfix:=20Table=E6=8E=A7=E4=BB=B6=E4=B8=AD?= =?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9COnColumnCreating=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E4=B8=AD=E4=BF=AE=E6=94=B9=E4=BA=86Column=E9=A1=B9=E7=9A=84Ord?= =?UTF-8?q?er=EF=BC=8C=E5=B9=B6=E4=B8=8D=E4=BC=9A=E8=B5=B7=E4=BD=9C?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index c67b1afaaeb..506d31dd1b8 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -1183,7 +1183,18 @@ private async Task ProcessFirstRender() if (OnColumnCreating != null) { + // 创建一个比较副本 + var originalOrders = Columns.ToDictionary(c => c, c => c.Order); + await OnColumnCreating(Columns); + + // 如果OnColumnCreating回调中修改了Column项的Order,这里需要重新排序一下 + if (Columns.Any(c => c.Order != originalOrders[c])) + { + var sortedColumns = Columns.OrderFunc().ToList(); + Columns.Clear(); + Columns.AddRange(sortedColumns); + } } InternalResetVisibleColumns(); From 7be5c5c3e973492f92535bf4de128989461337e3 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 18 Jun 2025 09:03:15 +0800 Subject: [PATCH 2/8] =?UTF-8?q?revert:=20=E6=92=A4=E9=94=80=E6=9B=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.cs | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index 506d31dd1b8..c67b1afaaeb 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -1183,18 +1183,7 @@ private async Task ProcessFirstRender() if (OnColumnCreating != null) { - // 创建一个比较副本 - var originalOrders = Columns.ToDictionary(c => c, c => c.Order); - await OnColumnCreating(Columns); - - // 如果OnColumnCreating回调中修改了Column项的Order,这里需要重新排序一下 - if (Columns.Any(c => c.Order != originalOrders[c])) - { - var sortedColumns = Columns.OrderFunc().ToList(); - Columns.Clear(); - Columns.AddRange(sortedColumns); - } } InternalResetVisibleColumns(); From 11483c8fd22e0d095dd2c7e885e5964d568eabbc Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 18 Jun 2025 09:11:37 +0800 Subject: [PATCH 3/8] =?UTF-8?q?refactor:=20=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index c67b1afaaeb..770c807099c 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -1022,7 +1022,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender) await InvokeVoidAsync("scrollTo", Id); } - if(_shouldScrollTop) + if (_shouldScrollTop) { _shouldScrollTop = false; await InvokeVoidAsync("scrollTo", Id); From 0c8a880e27f5d9c582bb38a03087fa66d98c7ac0 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 18 Jun 2025 09:12:04 +0800 Subject: [PATCH 4/8] =?UTF-8?q?refactor:=20=E7=A7=81=E6=9C=89=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=86=85=E9=83=A8=E5=8C=96=E6=8F=90=E9=AB=98=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index 770c807099c..9946217320b 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -1101,7 +1101,7 @@ private async Task OnTableRenderAsync(bool firstRender) private readonly JsonSerializerOptions _serializerOption = new(JsonSerializerDefaults.Web); - private async Task> ReloadColumnWidthFromBrowserAsync() + private async Task ReloadColumnWidthFromBrowserAsync() { List? ret = null; if (!string.IsNullOrEmpty(ClientTableName) && AllowResizing) @@ -1124,7 +1124,7 @@ private async Task> ReloadColumnWidthFromBrowserAsync() catch { } } } - return ret ?? []; + _clientColumnWidths = ret ?? []; } private async Task ReloadColumnOrdersFromBrowserAsync(List columns) @@ -1178,7 +1178,7 @@ private async Task ProcessFirstRender() Columns.AddRange(cols.OrderFunc()); // 查看是否开启列宽序列化 - _clientColumnWidths = await ReloadColumnWidthFromBrowserAsync(); + await ReloadColumnWidthFromBrowserAsync(); ResetColumnWidth(); if (OnColumnCreating != null) From b5aeff72ee10036b289d2648f2279aef7920b445 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 18 Jun 2025 09:12:25 +0800 Subject: [PATCH 5/8] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/ColumnWidth.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/Table/ColumnWidth.cs b/src/BootstrapBlazor/Components/Table/ColumnWidth.cs index e007f618d64..15fc158ba16 100644 --- a/src/BootstrapBlazor/Components/Table/ColumnWidth.cs +++ b/src/BootstrapBlazor/Components/Table/ColumnWidth.cs @@ -8,7 +8,7 @@ namespace BootstrapBlazor.Components; /// /// 列宽设置类 /// -class ColumnWidth +struct ColumnWidth { /// /// 获得/设置 列名称 From 7a2ef13218eb15c3dac1eda0b772c497df5f0d08 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 18 Jun 2025 09:25:16 +0800 Subject: [PATCH 6/8] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E5=8F=98=E9=87=8F=E4=BC=A0=E9=80=92=E5=88=97=E9=9B=86?= =?UTF-8?q?=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Table/Table.razor.Toolbar.cs | 2 +- .../Components/Table/Table.razor.cs | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.Toolbar.cs b/src/BootstrapBlazor/Components/Table/Table.razor.Toolbar.cs index dc206c8410d..b14991f2869 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.Toolbar.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.Toolbar.cs @@ -1102,7 +1102,7 @@ private void ResetDynamicContext() FirstFixedColumnCache.Clear(); LastFixedColumnCache.Clear(); - InternalResetVisibleColumns(); + InternalResetVisibleColumns(Columns); var queryOption = BuildQueryPageOptions(); // 设置是否为首次查询 diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index 9946217320b..15131669e8a 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -963,7 +963,7 @@ protected override void OnParametersSet() ResetDynamicContext(); // resize column width; - ResetColumnWidth(); + ResetColumnWidth(Columns); } } @@ -1101,7 +1101,7 @@ private async Task OnTableRenderAsync(bool firstRender) private readonly JsonSerializerOptions _serializerOption = new(JsonSerializerDefaults.Web); - private async Task ReloadColumnWidthFromBrowserAsync() + private async Task ReloadColumnWidthFromBrowserAsync(List columns) { List? ret = null; if (!string.IsNullOrEmpty(ClientTableName) && AllowResizing) @@ -1125,6 +1125,8 @@ private async Task ReloadColumnWidthFromBrowserAsync() } } _clientColumnWidths = ret ?? []; + + ResetColumnWidth(columns); } private async Task ReloadColumnOrdersFromBrowserAsync(List columns) @@ -1222,11 +1224,11 @@ protected override async Task InvokeInitAsync() } } - private void ResetColumnWidth() + private void ResetColumnWidth(List columns) { foreach (var cw in _clientColumnWidths.Where(c => c.Width > 0)) { - var c = Columns.Find(c => c.GetFieldName() == cw.Name); + var c = columns.Find(c => c.GetFieldName() == cw.Name); if (c != null) { c.Width = cw.Width; @@ -1234,9 +1236,9 @@ private void ResetColumnWidth() } } - private void InternalResetVisibleColumns(IEnumerable? items = null) + private void InternalResetVisibleColumns(List columns, IEnumerable? items = null) { - var cols = Columns.Select(i => new ColumnVisibleItem(i.GetFieldName(), i.GetVisible()) { DisplayName = i.GetDisplayName() }).ToList(); + var cols = columns.Select(i => new ColumnVisibleItem(i.GetFieldName(), i.GetVisible()) { DisplayName = i.GetDisplayName() }).ToList(); if (items != null) { foreach (var column in cols) @@ -1262,7 +1264,7 @@ private void InternalResetVisibleColumns(IEnumerable? items = /// public void ResetVisibleColumns(IEnumerable columns) { - InternalResetVisibleColumns(columns); + InternalResetVisibleColumns(Columns, columns); StateHasChanged(); } From d8eaa7134ce9fb3c2e7d2eb360a35f281f60e818 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 18 Jun 2025 09:25:35 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E6=B7=B7=E4=B9=B1=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.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index 15131669e8a..fc49e0d2cdb 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -1176,19 +1176,19 @@ private async Task ProcessFirstRender() } await ReloadColumnOrdersFromBrowserAsync(cols); - Columns.Clear(); - Columns.AddRange(cols.OrderFunc()); // 查看是否开启列宽序列化 - await ReloadColumnWidthFromBrowserAsync(); - ResetColumnWidth(); + await ReloadColumnWidthFromBrowserAsync(cols); if (OnColumnCreating != null) { - await OnColumnCreating(Columns); + await OnColumnCreating(cols); } - InternalResetVisibleColumns(); + InternalResetVisibleColumns(cols); + + Columns.Clear(); + Columns.AddRange(cols.OrderFunc()); // set default sortName var col = Columns.Find(i => i is { Sortable: true, DefaultSort: true }); From 1d2a941e16fe0d836d16fc9a1da6f5acbf741025 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Wed, 18 Jun 2025 09:31:23 +0800 Subject: [PATCH 8/8] chore: bump version 9.7.4-beta07 Co-Authored-By: yacper <668255+yacper@users.noreply.github.com> --- src/BootstrapBlazor/BootstrapBlazor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index a89c66da56e..6cfc05514d2 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@  - 9.7.4-beta06 + 9.7.4-beta07