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

如何在Blazor QuickGrid中用RenderFragment引用HeaderTemplate指定HTML?

解决方案:Blazor QuickGrid PropertyColumn HeaderTemplate 正确用法

你的核心问题是错误地将HeaderTemplate当作字符串属性赋值,实际上它是RenderFragment类型的子参数,需要通过嵌套标签的方式传递内容。以下是具体修正方案:

1. 基础用法:直接在HeaderTemplate中添加HTML和样式

不需要自定义组件的情况下,直接把带样式的HTML放在<HeaderTemplate>嵌套标签内:

<QuickGrid Items="@yourDataSource">
    <PropertyColumn Property="f => f.TXT_NAME" Sortable="false" Class="itemName">
        <HeaderTemplate>
            <!-- 这里可以写任意HTML和样式 -->
            <span class="text-danger fst-italic fw-bold">Missouri</span>
        </HeaderTemplate>
    </PropertyColumn>
</QuickGrid>

2. 结合你自定义的TemplateHeader组件使用

如果要复用你写的TemplateHeader组件,只需将其嵌套在<HeaderTemplate>内部即可:

<QuickGrid Items="@yourDataSource">
    <PropertyColumn Property="f => f.TXT_NAME" Sortable="false" Class="itemName">
        <HeaderTemplate>
            <TemplateHeader>
                Missouri
            </TemplateHeader>
        </HeaderTemplate>
    </PropertyColumn>
</QuickGrid>

错误原因说明

你之前的写法HeaderTemplate="<TemplateHeader>Missouri</TemplateHeader>"是把RenderFragment参数当成了普通字符串属性,编译器会把<解析为代码中的无效符号,从而抛出An invalid expression term '<'错误。Blazor中所有RenderFragment类型的参数(比如ChildContent、HeaderTemplate)都需要通过嵌套标签的方式传递内容,而非属性赋值。

额外提示:动态绑定表头文本

如果需要动态修改表头内容,可以直接在HeaderTemplate中使用Blazor的绑定语法:

@code {
    private string dynamicHeader = "Missouri";
}

<QuickGrid Items="@yourDataSource">
    <PropertyColumn Property="f => f.TXT_NAME" Sortable="false" Class="itemName">
        <HeaderTemplate>
            <TemplateHeader>@dynamicHeader</TemplateHeader>
        </HeaderTemplate>
    </PropertyColumn>
</QuickGrid>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:33:15