将`GridView`的ItemTemplate输出简化为常规

时间:2011-03-07 18:32:34

标签: asp.net gridview templatefield

我正在使用TemplateField作为列,因为我需要HeaderTemplate。但是,ItemTemplate将单元格的内容呈现为<asp:Label>,输出如下所示:

<td><span>data</span></td>

有没有办法让ItemTemplate只渲染单元格的内容,以便输出看起来像这样:

<td>data</td>

感谢您的任何建议。

1 个答案:

答案 0 :(得分:4)

为了简单起见,自动生成的内置模板将始终使用Label,因为它们假设您可能希望进行格式化。如果您想获得基本的HTML输出,请使用Literal代替LabelLiteral行为与Label几乎相同,没有格式,因此没有span个标记。将您的TemplateField更改为以下内容:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Literal ID="ltTestItem" runat="server" Text="Test" />
    </ItemTemplate>
</asp:TemplateField>

它会产生:

<td>Test</td>

您可以通过将Text值替换为Eval("yourField")或者通过为控件实现OnDataBinding并根据需要对其进行操作来执行您想要的绑定。