Blazorise DataGrid的EditCommandTemplate多函数渲染及点击事件异常问题
Blazorise DataGrid EditCommandTemplate 点击事件不生效解决方案
纠正上下文认知误区
在EditCommandTemplate中,context指代的是当前行的实体对象,而非包含clicked状态的命令按钮上下文,直接调用context.clicked本身就不符合Blazorise的设计逻辑。正确绑定点击事件并控制编辑状态
通过DataGrid实例引用结合实体对象来实现编辑状态切换与自定义逻辑:<DataGrid @ref="targetDataGrid" TItem="YourEntityModel" ...> <EditCommandTemplate> <Button Color="Color.Primary" Clicked="@(() => TriggerEdit(context))">编辑</Button> <Button Color="Color.Danger" Clicked="@(() => TriggerDelete(context))">删除</Button> </EditCommandTemplate> </DataGrid> @code { private DataGrid<YourEntityModel> targetDataGrid; private bool isEditing; private YourEntityModel currentEditItem; private void TriggerEdit(YourEntityModel item) { currentEditItem = item; isEditing = true; // 触发DataGrid进入编辑模式 targetDataGrid.BeginEdit(item); } private void TriggerDelete(YourEntityModel item) { // 自定义删除逻辑 } }校验编辑状态的正确方式
如果需要判断当前行是否处于编辑状态,调用DataGrid内置方法即可:private bool CheckItemEditing(YourEntityModel item) { return targetDataGrid?.IsEditingItem(item) ?? false; }确保UI状态正常更新
若自定义的isEditing标识未同步UI,确认字段是组件内可绑定成员,复杂场景下可手动调用StateHasChanged()触发重渲染。
内容的提问来源于stack exchange,提问作者jabbar007
相关产品推荐
相关产品推荐

