Skip to content
2 changes: 2 additions & 0 deletions src/BootstrapBlazor/Components/Table/Table.razor.Checkbox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
// See the LICENSE file in the project root for more information.
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone

using System.Text.Json;

namespace BootstrapBlazor.Components;

public partial class Table<TItem>
Expand Down
28 changes: 26 additions & 2 deletions src/BootstrapBlazor/Components/Table/Table.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -981,7 +981,7 @@
if (!FirstRender)
{
// 动态列模式
ResetDynamicContext();

Check warning on line 984 in src/BootstrapBlazor/Components/Table/Table.razor.cs

View workflow job for this annotation

GitHub Actions / run test

Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call.

// resize column width;
ResetColumnWidth(Columns);
Expand Down Expand Up @@ -1281,6 +1281,30 @@
private async Task InternalResetVisibleColumns(List<ITableColumn> columns, IEnumerable<ColumnVisibleItem>? items = null)
{
var cols = columns.Select(i => new ColumnVisibleItem(i.GetFieldName(), i.GetVisible()) { DisplayName = i.GetDisplayName() }).ToList();
List<ColumnVisibleItem>? ret = null;
if (ClientTableName != null && ShowColumnList)
{
var jsonData = await JSRuntime.InvokeAsync<string>("localStorage.getItem", "bb-table-column-visiable-" + ClientTableName);
if (!string.IsNullOrEmpty(jsonData))
{
try
{
ret = JsonSerializer.Deserialize<List<ColumnVisibleItem>>(jsonData, _serializerOption);
}
catch { }
if(ret != null)
{
foreach (var i in ret)
{
var col = cols.FirstOrDefault(d => d.Name == i.Name && d.DisplayName == i.DisplayName);
if (col != null)
{
col.Visible = i.Visible;
}
}
}
}
}
if (items != null)
{
foreach (var column in cols)
Expand Down Expand Up @@ -1507,7 +1531,7 @@
if (DynamicContext.OnValueChanged != null)
{
var parameters = col.ComponentParameters?.ToList() ?? [];
parameters.Add(new(nameof(ValidateBase<string>.OnValueChanged), onValueChanged.Invoke(d, col, (model, column, val) => DynamicContext.OnValueChanged(model, column, val))));
parameters.Add(new(nameof(ValidateBase<>.OnValueChanged), onValueChanged.Invoke(d, col, (model, column, val) => DynamicContext.OnValueChanged(model, column, val))));
col.ComponentParameters = parameters;
}
builder.CreateComponentByFieldType(this, col, row, changedType, false, col.GetLookupService(InjectLookupService), skipValidate: true);
Expand All @@ -1518,7 +1542,7 @@
{
var onValueChanged = Utility.GetOnValueChangedInvoke<TItem>(col.PropertyType);
var parameters = col.ComponentParameters?.ToList() ?? [];
parameters.Add(new(nameof(ValidateBase<string>.OnValueChanged), onValueChanged(item, col, (model, column, val) => InternalOnSaveAsync(model, ItemChangedType.Update))));
parameters.Add(new(nameof(ValidateBase<>.OnValueChanged), onValueChanged(item, col, (model, column, val) => InternalOnSaveAsync(model, ItemChangedType.Update))));
col.ComponentParameters = parameters;
}
}
Expand Down
5 changes: 4 additions & 1 deletion src/BootstrapBlazor/Converter/ColumnVisibleItemConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

namespace BootstrapBlazor.Components;

/// <summary>
/// ColumnVisibleItem 序列化转化器
/// </summary>
public class ColumnVisibleItemConverter : JsonConverter<ColumnVisibleItem>
{
/// <summary>
Expand Down Expand Up @@ -45,7 +48,7 @@ public class ColumnVisibleItemConverter : JsonConverter<ColumnVisibleItem>
}
}
}
return new ColumnVisibleItem(name, visible);
return new ColumnVisibleItem(name ?? "", visible);
}

/// <summary>
Expand Down
Loading