Skip to content

Commit 3edfd94

Browse files
committed
Merge branch 'main' into feat-tab
2 parents 3a2bf44 + f131098 commit 3edfd94

File tree

5 files changed

+39
-14
lines changed

5 files changed

+39
-14
lines changed

src/BootstrapBlazor/Components/Table/Table.razor.Toolbar.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ public async Task AddAsync()
502502
{
503503
// 数据源为 DataTable 新建后重建行与列
504504
await DynamicContext.AddAsync(SelectedRows.OfType<IDynamicObject>());
505-
await ResetDynamicContext();
505+
ResetDynamicContext();
506506

507507
if (!IsKeepSelectedRowAfterAdd)
508508
{
@@ -1030,7 +1030,7 @@ protected async Task DeleteAsync()
10301030
if (DynamicContext != null)
10311031
{
10321032
await DynamicContext.DeleteAsync(SelectedRows.OfType<IDynamicObject>());
1033-
await ResetDynamicContext();
1033+
ResetDynamicContext();
10341034
SelectedRows.Clear();
10351035
await OnSelectedRowsChanged();
10361036
}
@@ -1098,7 +1098,7 @@ async Task<bool> DeleteItemsAsync()
10981098
}
10991099
}
11001100

1101-
private async Task ResetDynamicContext()
1101+
private void ResetDynamicContext()
11021102
{
11031103
if (DynamicContext != null)
11041104
{
@@ -1112,7 +1112,7 @@ private async Task ResetDynamicContext()
11121112
FirstFixedColumnCache.Clear();
11131113
LastFixedColumnCache.Clear();
11141114

1115-
await InternalResetVisibleColumns(Columns);
1115+
InternalResetVisibleColumns(Columns);
11161116

11171117
var queryOption = BuildQueryPageOptions();
11181118
// 设置是否为首次查询

src/BootstrapBlazor/Components/Table/Table.razor.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,11 +1128,11 @@ private async Task ReloadColumnVisibleFromBrowserAsync()
11281128
if (!string.IsNullOrEmpty(ClientTableName))
11291129
{
11301130
// 读取浏览器配置
1131-
var clientColumns = await InvokeAsync<List<ColumnVisibleItem>>("reloadColumnList", ClientTableName);
1131+
var clientColumns = await InvokeAsync<List<ColumnVisibleItem?>>("reloadColumnList", ClientTableName);
11321132
clientColumns ??= [];
11331133
foreach (var column in _visibleColumns)
11341134
{
1135-
var item = clientColumns.FirstOrDefault(i => i.Name == column.Name);
1135+
var item = clientColumns.FirstOrDefault(i => i?.Name == column.Name);
11361136
if (item != null)
11371137
{
11381138
column.Visible = item.Visible;
@@ -1225,7 +1225,7 @@ private async Task ProcessFirstRender()
12251225
await OnColumnCreating(cols);
12261226
}
12271227

1228-
await InternalResetVisibleColumns(cols);
1228+
InternalResetVisibleColumns(cols);
12291229

12301230
await ReloadColumnVisibleFromBrowserAsync();
12311231

@@ -1278,7 +1278,7 @@ private void ResetColumnWidth(List<ITableColumn> columns)
12781278
}
12791279
}
12801280

1281-
private async Task InternalResetVisibleColumns(List<ITableColumn> columns, IEnumerable<ColumnVisibleItem>? items = null)
1281+
private void InternalResetVisibleColumns(List<ITableColumn> columns, IEnumerable<ColumnVisibleItem>? items = null)
12821282
{
12831283
var cols = columns.Select(i => new ColumnVisibleItem(i.GetFieldName(), i.GetVisible()) { DisplayName = i.GetDisplayName() }).ToList();
12841284
if (items != null)
@@ -1304,15 +1304,15 @@ private async Task InternalResetVisibleColumns(List<ITableColumn> columns, IEnum
13041304
/// 设置 列可见方法
13051305
/// </summary>
13061306
/// <param name="columns"></param>
1307-
public async Task ResetVisibleColumns(IEnumerable<ColumnVisibleItem> columns)
1307+
public void ResetVisibleColumns(IEnumerable<ColumnVisibleItem> columns)
13081308
{
13091309
// https://github.com/dotnetcore/BootstrapBlazor/issues/6823
13101310
if (AllowResizing)
13111311
{
13121312
_resetColumns = true;
13131313
}
13141314

1315-
await InternalResetVisibleColumns(Columns, columns);
1315+
InternalResetVisibleColumns(Columns, columns);
13161316
StateHasChanged();
13171317
}
13181318

@@ -1507,7 +1507,7 @@ void SetDynamicEditTemplate()
15071507
if (DynamicContext.OnValueChanged != null)
15081508
{
15091509
var parameters = col.ComponentParameters?.ToList() ?? [];
1510-
parameters.Add(new(nameof(ValidateBase<string>.OnValueChanged), onValueChanged.Invoke(d, col, (model, column, val) => DynamicContext.OnValueChanged(model, column, val))));
1510+
parameters.Add(new(nameof(ValidateBase<>.OnValueChanged), onValueChanged.Invoke(d, col, (model, column, val) => DynamicContext.OnValueChanged(model, column, val))));
15111511
col.ComponentParameters = parameters;
15121512
}
15131513
builder.CreateComponentByFieldType(this, col, row, changedType, false, col.GetLookupService(InjectLookupService), skipValidate: true);
@@ -1518,7 +1518,7 @@ void SetEditTemplate()
15181518
{
15191519
var onValueChanged = Utility.GetOnValueChangedInvoke<TItem>(col.PropertyType);
15201520
var parameters = col.ComponentParameters?.ToList() ?? [];
1521-
parameters.Add(new(nameof(ValidateBase<string>.OnValueChanged), onValueChanged(item, col, (model, column, val) => InternalOnSaveAsync(model, ItemChangedType.Update))));
1521+
parameters.Add(new(nameof(ValidateBase<>.OnValueChanged), onValueChanged(item, col, (model, column, val) => InternalOnSaveAsync(model, ItemChangedType.Update))));
15221522
col.ComponentParameters = parameters;
15231523
}
15241524
}

src/BootstrapBlazor/Converter/ColumnVisibleItemConverter.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
namespace BootstrapBlazor.Components;
1010

11+
/// <summary>
12+
/// ColumnVisibleItem 序列化转化器
13+
/// </summary>
1114
public class ColumnVisibleItemConverter : JsonConverter<ColumnVisibleItem>
1215
{
1316
/// <summary>
@@ -45,7 +48,7 @@ public class ColumnVisibleItemConverter : JsonConverter<ColumnVisibleItem>
4548
}
4649
}
4750
}
48-
return new ColumnVisibleItem(name, visible);
51+
return string.IsNullOrEmpty(name) ? null : new ColumnVisibleItem(name, visible);
4952
}
5053

5154
/// <summary>

test/UnitTest/Components/TableTest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -732,8 +732,9 @@ public void ResetFilter_Null()
732732
public async Task ShowColumnList_Ok()
733733
{
734734
// 设置客户端存储
735-
Context.JSInterop.Setup<List<ColumnVisibleItem>>("reloadColumnList", "test").SetResult(
735+
Context.JSInterop.Setup<List<ColumnVisibleItem?>>("reloadColumnList", "test").SetResult(
736736
[
737+
null,
737738
new("Name", false),
738739
new("Address", true)
739740
]);
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the Apache 2.0 License
3+
// See the LICENSE file in the project root for more information.
4+
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone
5+
6+
using System.Text.Json;
7+
8+
namespace UnitTest.Converters;
9+
10+
public class ColumnVisibleItemConverterTest
11+
{
12+
[Fact]
13+
public void ColumnVisibleItemConverter_Ok()
14+
{
15+
var item = new ColumnVisibleItem("name", true) { DisplayName = "display" };
16+
var json = JsonSerializer.Serialize(item);
17+
Assert.Equal("{\"name\":\"name\",\"visible\":true}", json);
18+
19+
var item2 = JsonSerializer.Deserialize<List<ColumnVisibleItem>>("[{\"test\":\"test\"}]");
20+
}
21+
}

0 commit comments

Comments
 (0)