我有以下家长剃须刀组件,这是主桌,它被分割成小部件:
<div class="row">
<TopSection DeleteCss="@deleteCssStyle" />
</div>
<div class="row">
<div class="col-1">
<div>
<a href="" class="fs-4 fw-bold">
<span class="oi oi-loop-circular text-black rotate-45"></span>
</a>
</div>
<div>
<a href="" class="fs-4 fw-bold">
<span class="oi oi-account-logout text-black rotate-180"></span>
</a>
</div>
</div>
<div class="col-11">
<div class="table-responsive" id="pay-table">
<table class="table table-striped table-borderless">
<TableHeader ... />
<TableBody Items="@filteredList" OnCheckRow="@OnCheckRow" />
<TableFooter ... />
</table>
</div>
</div>
</div>The TopSection
<div class="col-4">
<a href="javascript:void(0)" class="btn">Edit</a>
<a href="javascript:void(0)" class="btn">Add</a>
<a href="javascript:void(0)" class="btn @DeleteCss">Delete</a>
</div>代码背后:
[Parameter]
public string DeleteCss { get; set; } = "disabled";主OnCheckRow
protected void OnCheckRow(int checkedRows)
{
deleteCssStyle = checkedRows > 0 ? "" : "disabled";
}The TableBody
<tbody>
@{
foreach (var row in Items)
{
<tr @onclick="@((e)=> OnCheck(row) )">
<td>
<EditForm Model="@row" class="form-check-inline">
<InputCheckbox @bind-Value="@row.IsChecked" id="@row.Id" />
</EditForm>
@row.Title
</td>
...
...
</tr>
}
}
</tbody>以及背后的代码:
[Parameter]
public Action<int> OnCheckRow { get; set; } = (i) => { };
protected void OnCheck(MyItem row)
{
row.IsChecked = !row.IsChecked;
OnCheckRow?.Invoke(Items.Count(s => s.IsChecked));
}因此,我希望在检查至少一项时,希望“删除”按钮可用,否则添加“禁用”类以避免单击它。
似乎在触发器单击时,deleteCssStyle的属性在TopAction组件中也没有更新,删除按钮仍然被禁用。
我在这里迷路了。我想在这里寻求帮助。
稍后编辑/解析
对于EventCallback,我不得不使用OnCheckRow而不是Action
[Parameter]
public EventCallback<int> OnCheckRow { get; set; }
protected async Task OnCheck(PayComponentListItem row)
{ row.IsChecked = !row.IsChecked;
await OnCheckRow.InvokeAsync(Items.Count(s => s.IsChecked));}而且会像魅力一样发挥作用!
发布于 2022-07-21 07:25:16
尝试这个解决方案,您可以使用LINQ进行测试。
protected void OnCheckRow(int checkedRows)
{
deleteCssStyle = Items.Any(x=> x.Ischecked) ? "" : "disabled;
}https://stackoverflow.com/questions/73062053
复制相似问题