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

Blazorise DataGrid中DetailRowTemplate内按钮不显示的问题排查

排查与解决Blazorise子DataGrid中View按钮不显示的问题

1. 最可能的原因:自定义列未使用DisplayTemplate包裹内容

Blazorise的DataGridColumn要渲染自定义内容(比如按钮),必须将内容放在DisplayTemplate标签内,直接在DataGridColumn下写按钮不会被正确解析渲染。

修改子DataGrid的View列代码:

<DataGridColumn Caption="View">
    <DisplayTemplate>
        <Button Color="Color.Primary" Clicked="ShowModal">View</Button>
    </DisplayTemplate>
</DataGridColumn>

2. 检查事件绑定是否存在错误

如果ShowModal方法不存在、参数不匹配或者有逻辑错误,会导致组件渲染失败,进而按钮列不生成元素:

  • 确认ShowModal方法在当前组件中已正确定义,例如:
    private void ShowModal()
    {
        // 你的业务逻辑代码
    }
    
  • 临时移除Clicked="ShowModal",用静态按钮测试是否能显示:
    <DataGridColumn Caption="View">
        <DisplayTemplate>
            <Button Color="Color.Primary">View</Button>
        </DisplayTemplate>
    </DataGridColumn>
    

3. 检查子DataGrid的自动列生成设置

确保子DataGrid未开启AutoGenerateColumns="true",该属性如果手动设为true,会覆盖你手动定义的列(Blazorise默认AutoGenerateColumns为false)。

4. 验证子数据集合有效性

虽然你提到子数据区域能显示,但仍需确认remarksData为非空集合:

  • 在子DataGrid前添加调试输出,确认数据存在:
    <p>Remarks count: @remarksData?.Count</p>
    
    如果数据为空,子Grid不会渲染行,按钮自然也不会显示。

5. 检查Blazorise版本兼容性

部分旧版本Blazorise对自定义列的渲染逻辑存在差异,确保使用较新的稳定版本(比如>=1.0.0),避免版本bug导致的渲染问题。

内容的提问来源于stack exchange,提问作者weeraa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 06:14:52