diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj index 4219d2a255e..f0fc979d820 100644 --- a/src/BootstrapBlazor/BootstrapBlazor.csproj +++ b/src/BootstrapBlazor/BootstrapBlazor.csproj @@ -1,7 +1,7 @@ - 9.0.0-rc.2.11.3.0 + 9.0.0-rc.2.11.5.0 diff --git a/src/BootstrapBlazor/Components/Table/Table.razor b/src/BootstrapBlazor/Components/Table/Table.razor index e5f016ec19c..ab3a41ab5c4 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor +++ b/src/BootstrapBlazor/Components/Table/Table.razor @@ -48,7 +48,7 @@ { @if (ShowAddButton) { - + } @if (!IsExcel && ShowEditButton) { diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index a71c3483a50..a19778effe0 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -725,13 +725,19 @@ public async Task ExpandDetailRow(TItem item) public string? AlignRightTooltipText { get; set; } /// - /// 获得/设置 删除按钮是否禁用回调方法 + /// 获得/设置 新建按钮是否禁用回调方法 默认 null 未设置 + /// + [Parameter] + public Func, bool>? DisableAddButtonCallback { get; set; } + + /// + /// 获得/设置 删除按钮是否禁用回调方法 默认 null 未设置 /// [Parameter] public Func, bool>? DisableDeleteButtonCallback { get; set; } /// - /// 获得/设置 编辑按钮是否禁用回调方法 + /// 获得/设置 编辑按钮是否禁用回调方法 默认 null 未设置 /// [Parameter] public Func, bool>? DisableEditButtonCallback { get; set; } @@ -1469,6 +1475,8 @@ public async Task ResetSortAsync() await QueryData(); } + private bool GetAddButtonStatus() => DisableAddButtonCallback?.Invoke(SelectedRows) ?? false; + /// /// 返回 true 时按钮禁用 /// diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index 541a8e158de..d0e3dd92169 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -6344,6 +6344,45 @@ public void DisableEditButtonCallback_Ok() Assert.True(editButton.Instance.IsDisabled); } + [Fact] + public void DisableAddButtonCallback_Ok() + { + var localizer = Context.Services.GetRequiredService>(); + var items = Foo.GenerateFoo(localizer, 2); + var cut = Context.RenderComponent(pb => + { + pb.AddChildContent>(pb => + { + pb.Add(a => a.RenderMode, TableRenderMode.Table); + pb.Add(a => a.Items, items); + pb.Add(a => a.ShowToolbar, true); + pb.Add(a => a.TableColumns, foo => builder => + { + builder.OpenComponent>(0); + builder.AddAttribute(1, "Field", "Name"); + builder.AddAttribute(2, "FieldExpression", Utility.GenerateValueExpression(foo, "Name", typeof(string))); + builder.CloseComponent(); + }); + pb.Add(a => a.SelectedRows, [items[0]]); + }); + }); + + var buttons = cut.FindComponents