Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/BootstrapBlazor.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">

<PropertyGroup>
<Version>10.6.1-beta06</Version>
<Version>10.6.1-beta07</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Table/Table.razor
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
@attribute [BootstrapModuleAutoLoader(JSObjectReference = true)]

<div @attributes="@AdditionalAttributes" class="@ClassName" style="@StyleString" id="@Id">
<CascadingValue Value="this" IsFixed="true">
<CascadingValue Value="@_columns" IsFixed="true">
@TableColumns?.Invoke(CreateTItem())
</CascadingValue>
@if (_firstRender)
Expand Down
17 changes: 8 additions & 9 deletions src/BootstrapBlazor/Components/Table/Table.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -969,6 +969,8 @@ public async Task ExpandDetailRow(TItem item)

private bool IsDataTableDynamicContext => DynamicContext is DataTableDynamicContext;

private List<ITableColumn> _columns = [];

/// <summary>
/// <inheritdoc/>
/// </summary>
Expand Down Expand Up @@ -1118,14 +1120,11 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
// 首次渲染结束
_firstRender = false;

// 构建列信息
await BuildTableColumnsAsync();

// 读取浏览器持久化列状态配置
await ReloadColumnStatesFromBrowserAsync();

// 加载客户端持久化列状态
RebuildTableColumnFromCache();
// 构建列信息
await BuildTableColumnsAsync();

// 调用查询方法渲染 UI
await QueryAsync(true, 1, false, true, IsAutoQueryFirstRender);
Expand Down Expand Up @@ -1287,11 +1286,11 @@ private List<ITableColumn> GetTableColumns()
}
else if (AutoGenerateColumns)
{
cols.AddRange(Utility.GetTableColumns<TItem>(Columns));
cols.AddRange(Utility.GetTableColumns<TItem>(_columns));
}
else
{
cols.AddRange(Columns);
cols.AddRange(_columns);
}

if (ColumnOrderCallback != null)
Expand Down Expand Up @@ -1342,7 +1341,7 @@ private async Task ReloadColumnStatesFromBrowserAsync()
state = new();

// 开启客户端持久化后未设置列状态的列默认使用组件参数值
state.Columns.AddRange(Columns.Where(i => !i.GetIgnore()).Select(i => new TableColumnState()
state.Columns.AddRange(_columns.Where(i => !i.GetIgnore()).Select(i => new TableColumnState()
{
Name = i.GetFieldName(),
Visible = i.GetVisible(),
Expand Down Expand Up @@ -1728,7 +1727,7 @@ private Func<Task> TriggerDoubleClickCell(ITableColumn col, TItem item) => async

private int GetColumnCount()
{
var colSpan = GetVisibleColumns().Count();
var colSpan = GetVisibleColumns().Count;
if (IsMultipleSelect)
{
colSpan++;
Expand Down
20 changes: 17 additions & 3 deletions src/BootstrapBlazor/Components/Table/TableColumn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -567,13 +567,27 @@ public string GetFieldName()
return FieldName ?? "";
}

/// <summary>
/// <para lang="zh">DisposeAsync 方法</para>
/// <para lang="en">DisposeAsync method</para>
/// </summary>
protected virtual ValueTask DisposeAsync(bool disposing)
{
if (disposing)
{
Columns?.Remove(this);
}

return ValueTask.CompletedTask;
}

/// <summary>
/// <inheritdoc/>
/// </summary>
/// <returns></returns>
public virtual ValueTask DisposeAsync()
public virtual async ValueTask DisposeAsync()
{
Columns?.Remove(this);
return ValueTask.CompletedTask;
await DisposeAsync(true);
GC.SuppressFinalize(this);
}
}
4 changes: 2 additions & 2 deletions test/UnitTest/Components/TableTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5228,7 +5228,7 @@ public void TableColumn_Editable()
});
var table = cut.FindComponent<Table<Foo>>();
Assert.Equal(2, table.Instance.Columns.Count);
Assert.Equal(2, table.Instance.GetVisibleColumns().Count());
Assert.Equal(2, table.Instance.GetVisibleColumns().Count);

table.Render(pb =>
{
Expand Down Expand Up @@ -7351,7 +7351,7 @@ public void ExportAsync_Ok()

// 可见列为 2 列
var columns = table.Instance.GetVisibleColumns();
Assert.Equal(2, columns.Count());
Assert.Equal(2, columns.Count);

// 由于设置了 IgnoreWhenExport 为 true 所以导出时不包含 Address 列
ITableExportDataContext<Foo>? exportContext = null;
Expand Down
Loading