You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:45:30