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 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 { /// /// 获得/设置 列名称 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 c67b1afaaeb..fc49e0d2cdb 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); } } @@ -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); @@ -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) @@ -1124,7 +1124,9 @@ private async Task> ReloadColumnWidthFromBrowserAsync() catch { } } } - return ret ?? []; + _clientColumnWidths = ret ?? []; + + ResetColumnWidth(columns); } private async Task ReloadColumnOrdersFromBrowserAsync(List columns) @@ -1174,19 +1176,19 @@ private async Task ProcessFirstRender() } await ReloadColumnOrdersFromBrowserAsync(cols); - Columns.Clear(); - Columns.AddRange(cols.OrderFunc()); // 查看是否开启列宽序列化 - _clientColumnWidths = 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 }); @@ -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(); }