From ef6b15c5340d7672eb23843b6f902b35f44b3715 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 31 Oct 2025 15:20:45 +0800 Subject: [PATCH 1/4] feat(Table): add UseButtonGroup parameter --- src/BootstrapBlazor/Components/Table/Table.razor | 6 +++--- src/BootstrapBlazor/Components/Table/Table.razor.cs | 11 +++++++++++ src/BootstrapBlazor/Components/Table/Table.razor.scss | 4 ++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor b/src/BootstrapBlazor/Components/Table/Table.razor index 68d49284251..e324800cda5 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor +++ b/src/BootstrapBlazor/Components/Table/Table.razor @@ -869,7 +869,7 @@ RenderFragment RenderExtendButtons => item => @
- +
@if (BeforeRowButtonTemplate != null) { @@ -897,13 +897,13 @@ @RowButtonTemplate.Invoke(item) } - +
; RenderFragment RenderRowExtendButtons => item => @
-
+
@{ var isInCell = InCellMode && SelectedRows.FirstOrDefault() == item; } diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index c635fdf3332..c178180f0d8 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -47,6 +47,12 @@ public partial class Table : ITable, IModelEqualityComparer where [Parameter] public int DefaultFixedColumnWidth { get; set; } = 200; + /// + /// 获得/设置 是否使用按钮组显示行内按钮 默认 true + /// + [Parameter] + public bool UseButtonGroup { get; set; } = false; + /// /// 获得/设置 内置虚拟化组件实例 /// @@ -153,6 +159,11 @@ public partial class Table : ITable, IModelEqualityComparer where .AddClass(ExtendButtonColumnAlignment.ToDescriptionString()) .Build(); + private string? ExtendButtonClassString => CssBuilder.Default() + .AddClass("btn-group", UseButtonGroup) + .AddClass("btn-separate", !UseButtonGroup) + .Build(); + private string GetSortTooltip(ITableColumn col) => SortName != col.GetFieldName() ? UnsetText : SortOrder switch diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.scss b/src/BootstrapBlazor/Components/Table/Table.razor.scss index 551cc54c38f..39d18772efc 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.scss +++ b/src/BootstrapBlazor/Components/Table/Table.razor.scss @@ -968,3 +968,7 @@ form .table .table-cell > textarea { .bb-sortable tr { cursor: pointer; } + +.btn-separate > button:not(:last-child) { + margin-inline-end: .25rem; +} From c8dbce8c59d6bfc8f8d8861c3209a6d6dc7fb52b Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 31 Oct 2025 15:22:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=94=B9=E5=90=8D?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor | 4 ++-- src/BootstrapBlazor/Components/Table/Table.razor.cs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor b/src/BootstrapBlazor/Components/Table/Table.razor index e324800cda5..4e590920016 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor +++ b/src/BootstrapBlazor/Components/Table/Table.razor @@ -869,7 +869,7 @@ RenderFragment RenderExtendButtons => item => @
-
+
@if (BeforeRowButtonTemplate != null) { @@ -903,7 +903,7 @@ RenderFragment RenderRowExtendButtons => item => @
-
+
@{ var isInCell = InCellMode && SelectedRows.FirstOrDefault() == item; } diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index c178180f0d8..a29bd13c71a 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -51,7 +51,7 @@ public partial class Table : ITable, IModelEqualityComparer where /// 获得/设置 是否使用按钮组显示行内按钮 默认 true /// [Parameter] - public bool UseButtonGroup { get; set; } = false; + public bool RowButtonUseGroup { get; set; } = true; /// /// 获得/设置 内置虚拟化组件实例 @@ -159,9 +159,9 @@ public partial class Table : ITable, IModelEqualityComparer where .AddClass(ExtendButtonColumnAlignment.ToDescriptionString()) .Build(); - private string? ExtendButtonClassString => CssBuilder.Default() - .AddClass("btn-group", UseButtonGroup) - .AddClass("btn-separate", !UseButtonGroup) + private string? ExtendButtonGroupClassString => CssBuilder.Default() + .AddClass("btn-group", RowButtonUseGroup) + .AddClass("btn-separate", !RowButtonUseGroup) .Build(); private string GetSortTooltip(ITableColumn col) => SortName != col.GetFieldName() From 321dbaafc09491813a0f14007cce936fc1b4054d Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 31 Oct 2025 15:28:51 +0800 Subject: [PATCH 3/4] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TableTest.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index b5ae1406052..738519ce161 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -2026,6 +2026,17 @@ public void RowButtonTemplate_Ok() }); }); }); + + cut.Contains("
"); + + var table = cut.FindComponent>(); + Assert.NotNull(table); + + table.SetParametersAndRender(pb => + { + pb.Add(a => a.RowButtonUseGroup, false); + }); + cut.Contains("
"); } [Fact] From 5fb707d11af9349677f3bd76a3432e5a51ed093e Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 1 Nov 2025 11:12:00 +0800 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20=E6=9B=B4=E6=94=B9=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/Table/Table.razor.cs | 8 ++++---- test/UnitTest/Components/TableTest.cs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/BootstrapBlazor/Components/Table/Table.razor.cs b/src/BootstrapBlazor/Components/Table/Table.razor.cs index a29bd13c71a..b2aa9472161 100644 --- a/src/BootstrapBlazor/Components/Table/Table.razor.cs +++ b/src/BootstrapBlazor/Components/Table/Table.razor.cs @@ -48,10 +48,10 @@ public partial class Table : ITable, IModelEqualityComparer where public int DefaultFixedColumnWidth { get; set; } = 200; /// - /// 获得/设置 是否使用按钮组显示行内按钮 默认 true + /// 获得/设置 是否使用按钮组显示行内扩展按钮 默认 true /// [Parameter] - public bool RowButtonUseGroup { get; set; } = true; + public bool IsGroupExtendButtons { get; set; } = true; /// /// 获得/设置 内置虚拟化组件实例 @@ -160,8 +160,8 @@ public partial class Table : ITable, IModelEqualityComparer where .Build(); private string? ExtendButtonGroupClassString => CssBuilder.Default() - .AddClass("btn-group", RowButtonUseGroup) - .AddClass("btn-separate", !RowButtonUseGroup) + .AddClass("btn-group", IsGroupExtendButtons) + .AddClass("btn-separate", !IsGroupExtendButtons) .Build(); private string GetSortTooltip(ITableColumn col) => SortName != col.GetFieldName() diff --git a/test/UnitTest/Components/TableTest.cs b/test/UnitTest/Components/TableTest.cs index 738519ce161..675276046f8 100644 --- a/test/UnitTest/Components/TableTest.cs +++ b/test/UnitTest/Components/TableTest.cs @@ -2034,7 +2034,7 @@ public void RowButtonTemplate_Ok() table.SetParametersAndRender(pb => { - pb.Add(a => a.RowButtonUseGroup, false); + pb.Add(a => a.IsGroupExtendButtons, false); }); cut.Contains("
"); }