Skip to content

Commit 8640cbf

Browse files
authored
feat(Table): add ShowMoreButton parameter (#7048)
* doc: 更正单词拼写错误 * feat: 增加 ShowMoreButton 参数 * feat: 增加 MoreButtonTemplate 参数 * feat: 增加 MoreButtonDropdownTemplate 参数 * feat: 增加 更多按钮 图标 * feat: 增加 ShowMoreButton 控制 * feat: 增加 DropdownItem 组件 * doc: 更新示例 * feat: 增加 IDropdownItem 接口 * feat: 增加 DropdownItem 组件 * feat: 增加 DropdownDivider 组件 * feat: 实现 ItemsTemplate 模板功能 * feat: 增加 RenderMoreButton 模板 * doc: 更新示例 * revert: 撤销更新 * revert: 撤销更改 * revert: 撤销更改 * doc: 更新示例 * test: 增加单元测试 * doc: 文档格式化
1 parent 1905435 commit 8640cbf

File tree

11 files changed

+535
-371
lines changed

11 files changed

+535
-371
lines changed

src/BootstrapBlazor.Server/Components/Samples/Table/TablesSearch.razor

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
<div style="height: 600px;">
2626
<Table TItem="Foo"
2727
IsPagination="true" PageItemsSource="new int[] {10, 20}"
28-
IsStriped="true" IsBordered="true"
29-
ShowToolbar="true" ShowSearch="true" IsMultipleSelect="true" ShowExtendButtons="true"
28+
IsStriped="true" IsBordered="true" ShowMoreButton="true"
29+
ShowToolbar="true" ShowSearch="true" ShowCardView="true" IsMultipleSelect="true" ShowExtendButtons="true"
3030
AddModalTitle="@Localizer["AddModelTitle"]" EditModalTitle="@Localizer["EditModelTitle"]"
3131
SearchModel="@SearchModel" SearchMode="SearchMode.Top" ShowEmpty="true"
3232
OnQueryAsync="@OnSearchModelQueryAsync" OnResetSearchAsync="@OnResetSearchAsync"
@@ -49,6 +49,11 @@
4949
</div>
5050
</GroupBox>
5151
</SearchTemplate>
52+
<MoreButtonDropdownTemplate>
53+
<DropdownItem Text="Action1" Icon="fa-solid fa-flag" OnClick="@(() => OnAction(context, "Action1"))"></DropdownItem>
54+
<Divider></Divider>
55+
<DropdownItem Text="Action2" Icon="fa-solid fa-home" OnClick="@(() => OnAction(context, "Action2"))"></DropdownItem>
56+
</MoreButtonDropdownTemplate>
5257
</Table>
5358
</div>
5459
</DemoBlock>

src/BootstrapBlazor.Server/Components/Samples/Table/TablesSearch.razor.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,9 @@ private Task<QueryData<Foo>> OnSearchModelQueryAsync(QueryPageOptions options)
138138
Items = items,
139139
TotalCount = total,
140140
IsSorted = true,
141-
IsFiltered = options.Filters.Any(),
142-
IsSearch = options.Searches.Any(),
143-
IsAdvanceSearch = options.AdvanceSearches.Any()
141+
IsFiltered = options.Filters.Count != 0,
142+
IsSearch = options.Searches.Count != 0,
143+
IsAdvanceSearch = options.AdvanceSearches.Count != 0
144144
});
145145
}
146146

@@ -183,4 +183,9 @@ private Task<QueryData<Foo>> OnQueryAsync(QueryPageOptions options)
183183
IsAdvanceSearch = options.CustomerSearches.Count > 0 && string.IsNullOrEmpty(options.SearchText),
184184
});
185185
}
186+
187+
[Inject, NotNull]
188+
private ToastService? ToastService { get; set; }
189+
190+
private Task OnAction(Foo foo, string actionName) => ToastService.Information(foo.Name, $"Trigger {actionName}");
186191
}

src/BootstrapBlazor/Components/Table/Table.razor

Lines changed: 463 additions & 365 deletions
Large diffs are not rendered by default.

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,18 @@ public partial class Table<TItem>
151151
[Parameter]
152152
public RenderFragment<TItem>? RowButtonTemplate { get; set; }
153153

154+
/// <summary>
155+
/// 获得/设置 是否显示 行内更多按钮 默认 false 不显示
156+
/// </summary>
157+
[Parameter]
158+
public bool ShowMoreButton { get; set; }
159+
160+
/// <summary>
161+
/// 获得/设置 行内更多按钮下拉框模板 默认 null
162+
/// </summary>
163+
[Parameter]
164+
public RenderFragment<TItem>? MoreButtonDropdownTemplate { get; set; }
165+
154166
/// <summary>
155167
/// 获得/设置 行内功能按钮列头文本 默认为 操作
156168
/// </summary>
@@ -302,7 +314,7 @@ private async Task InternalOnAddAsync()
302314

303315
private TItem CreateTItem() => CreateItemCallback?.Invoke() ?? CreateInstance();
304316

305-
private readonly string ErrorMessage = $"{typeof(TItem)} create instrance failed. Please provide {nameof(CreateItemCallback)} create the {typeof(TItem)} instance. {typeof(TItem)} 自动创建实例失败,请通过 {nameof(CreateItemCallback)} 回调方法手动创建实例";
317+
private readonly string ErrorMessage = $"{typeof(TItem)} create instance failed. Please provide {nameof(CreateItemCallback)} create the {typeof(TItem)} instance. {typeof(TItem)} 自动创建实例失败,请通过 {nameof(CreateItemCallback)} 回调方法手动创建实例";
306318

307319
private TItem CreateInstance()
308320
{

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ public partial class Table<TItem>
3939
[Parameter]
4040
public string? EditButtonIcon { get; set; }
4141

42+
/// <summary>
43+
/// 获得/设置 更多按钮图标
44+
/// </summary>
45+
[Parameter]
46+
public string? MoreButtonIcon { get; set; }
47+
4248
/// <summary>
4349
/// 获得/设置 更新按钮文本
4450
/// </summary>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,7 @@ private void OnInitParameters()
919919
AddButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.TableAddButtonIcon);
920920
EditButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.TableEditButtonIcon);
921921
DeleteButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.TableDeleteButtonIcon);
922+
MoreButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.TableMoreButtonIcon);
922923
RefreshButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.TableRefreshButtonIcon);
923924
CardViewButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.TableCardViewButtonIcon);
924925
ColumnListButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.TableColumnListButtonIcon);

src/BootstrapBlazor/Enums/ComponentIcons.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,11 @@ public enum ComponentIcons
560560
/// </summary>
561561
TableEditButtonIcon,
562562

563+
/// <summary>
564+
/// Table 组件 MoreButtonIcon 属性图标
565+
/// </summary>
566+
TableMoreButtonIcon,
567+
563568
/// <summary>
564569
/// Table 组件 DeleteButtonIcon 属性图标
565570
/// </summary>

src/BootstrapBlazor/Icons/BootstrapIcons.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ internal static class BootstrapIcons
152152

153153
{ ComponentIcons.TableAddButtonIcon, "bi bi-plus" },
154154
{ ComponentIcons.TableEditButtonIcon, "bi bi-check2-square" },
155+
{ ComponentIcons.TableMoreButtonIcon, "bi bi-three-dots" },
155156
{ ComponentIcons.TableDeleteButtonIcon, "bi bi-x" },
156157
{ ComponentIcons.TableRefreshButtonIcon, "bi bi-arrow-clockwise" },
157158
{ ComponentIcons.TableCardViewButtonIcon, "bi bi-list" },

src/BootstrapBlazor/Icons/FontAwesomeIcons.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ internal static class FontAwesomeIcons
152152

153153
{ ComponentIcons.TableAddButtonIcon, "fa-solid fa-plus" },
154154
{ ComponentIcons.TableEditButtonIcon, "fa-regular fa-pen-to-square" },
155+
{ ComponentIcons.TableMoreButtonIcon, "fa-solid fa-ellipsis" },
155156
{ ComponentIcons.TableDeleteButtonIcon, "fa-solid fa-xmark" },
156157
{ ComponentIcons.TableRefreshButtonIcon, "fa-solid fa-arrows-rotate" },
157158
{ ComponentIcons.TableCardViewButtonIcon, "fa-solid fa-bars" },

src/BootstrapBlazor/Icons/MaterialDesignIcons.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ internal static class MaterialDesignIcons
152152

153153
{ ComponentIcons.TableAddButtonIcon, "mdi mdi-plus" },
154154
{ ComponentIcons.TableEditButtonIcon, "mdi mdi-file-edit-outline" },
155+
{ ComponentIcons.TableMoreButtonIcon, "mdi mdi-dots-horizontal" },
155156
{ ComponentIcons.TableDeleteButtonIcon, "mdi mdi-close" },
156157
{ ComponentIcons.TableRefreshButtonIcon, "mdi mdi-refresh" },
157158
{ ComponentIcons.TableCardViewButtonIcon, "mdi mdi-menu" },

0 commit comments

Comments
 (0)