Skip to content

Commit

Permalink
feat: add IsEnableWhenSelectedOneRow parameter on TableToolbarPopconf…
Browse files Browse the repository at this point in the history
…irmButton (#602)

* doc: 更改注释

* refactor: 更新资源文件赋值逻辑

* feat: add IsEnableWhenSelectedOneRow on TableToolbarPopconfirmButton

* doc: 更新注释

* doc: 更新示例代码
  • Loading branch information
ArgoZhang authored Mar 4, 2023
1 parent 3a40fc2 commit b9984b4
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@
Color="Color.Success"
Icon="fa-fw fa-solid fa-pen-to-square"
Text="@Localizer["TablesToolbarCustomButton2"]"
IsAsync OnClickCallback="@DownloadAsync" />
IsAsync OnClickCallback="@DownloadAsync" IsEnableWhenSelectedOneRow="true" />
<TableToolbarPopconfirmButton TItem="Foo"
Color="Color.Success"
Icon="fa-fw fa-solid fa-pen-to-square"
Text="@Localizer["TableToolbarPopconfirmButton1"]"
IsEnableWhenSelectedOneRow="true"
OnConfirmCallback="DownloadAsync" />
</TableToolbarTemplate>
<TableColumns>
<TableColumn @bind-Field="@context.DateTime" Width="180" />
Expand Down
3 changes: 2 additions & 1 deletion src/BootstrapBlazor.Shared/Locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -5630,7 +5630,8 @@
},
"BootstrapBlazor.Shared.Demos.Table.TablesToolbar.TablesToolbarCustomButton": {
"TablesToolbarCustomButton1": "Download 1",
"TablesToolbarCustomButton2": "Download 2"
"TablesToolbarCustomButton2": "Download 2",
"TableToolbarPopconfirmButton1": "Confirm"
},
"BootstrapBlazor.Shared.Samples.Table.TablesCell": {
"TablesCellTitle": "Table Cell",
Expand Down
3 changes: 2 additions & 1 deletion src/BootstrapBlazor.Shared/Locales/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -5647,7 +5647,8 @@
},
"BootstrapBlazor.Shared.Demos.Table.TablesToolbar.TablesToolbarCustomButton": {
"TablesToolbarCustomButton1": "下载1",
"TablesToolbarCustomButton2": "下载2"
"TablesToolbarCustomButton2": "下载2",
"TableToolbarPopconfirmButton1": "确认下载"
},
"BootstrapBlazor.Shared.Samples.Table.TablesCell": {
"TablesCellTitle": "Table 表格",
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Table/TableToolbar.razor
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
{
<PopConfirmButton AdditionalAttributes="pb.AdditionalAttributes" CustomClass="@pb.CustomClass"
Color="@pb.Color" Icon="@pb.Icon" Text="@pb.Text" Size="pb.Size" ShowShadow="@pb.ShowShadow"
IsAsync="@pb.IsAsync" IsDisabled="@pb.IsDisabled" IsBlock="@pb.IsBlock" IsOutline="@pb.IsOutline"
IsAsync="@pb.IsAsync" IsDisabled="GetDisabled(pb)" IsBlock="@pb.IsBlock" IsOutline="@pb.IsOutline"
OnBeforeClick="@pb.OnBeforeClick" OnClose="@pb.OnClose" OnConfirm="() => OnToolbarConfirmButtonClick(pb)"
ConfirmIcon="@pb.ConfirmIcon" ConfirmButtonColor="@pb.ConfirmButtonColor"
ConfirmButtonText="@pb.ConfirmButtonText" CloseButtonColor="@pb.CloseButtonColor"
Expand Down
4 changes: 2 additions & 2 deletions src/BootstrapBlazor/Components/Table/TableToolbar.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,14 @@ private async Task OnToolbarConfirmButtonClick(TableToolbarPopconfirmButton<TIte
}
}

private bool GetDisabled(TableToolbarButton<TItem> button)
private bool GetDisabled(ButtonBase button)
{
var ret = button.IsDisabled;
if (button.IsAsync && _asyncButtonStateCache.TryGetValue(button, out var b))
{
ret = b;
}
else if (button.IsEnableWhenSelectedOneRow)
else if (button is TableToolbarButton<TItem> { IsEnableWhenSelectedOneRow: true } || button is TableToolbarPopconfirmButton<TItem> { IsEnableWhenSelectedOneRow: true })
{
ret = OnGetSelectedRows().Count() != 1;
}
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Table/TableToolbarButton.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class TableToolbarButton<TItem> : ButtonBase
protected TableToolbar<TItem>? Toolbar { get; set; }

/// <summary>
/// 组件初始化方法
/// <inheritdoc/>
/// </summary>
protected override void OnInitialized()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ public class TableToolbarPopconfirmButton<TItem> : PopConfirmButtonBase
[Parameter]
public bool IsShow { get; set; } = true;

/// <summary>
/// 获得/设置 选中一行时启用按钮 默认 false 均可用
/// </summary>
[Parameter]
public bool IsEnableWhenSelectedOneRow { get; set; }

/// <summary>
/// 获得/设置 Table Toolbar 实例
/// </summary>
Expand All @@ -35,13 +41,21 @@ public class TableToolbarPopconfirmButton<TItem> : PopConfirmButtonBase
private IStringLocalizer<PopConfirmButton>? Localizer { get; set; }

/// <summary>
/// OnInitialized 方法
/// <inheritdoc/>
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();

Toolbar?.AddButton(this);
}

/// <summary>
/// <inheritdoc/>
/// </summary>
protected override void OnParametersSet()
{
base.OnParametersSet();

ConfirmButtonText ??= Localizer[nameof(ConfirmButtonText)];
CloseButtonText ??= Localizer[nameof(CloseButtonText)];
Expand Down

0 comments on commit b9984b4

Please sign in to comment.