我正在使用TemplateField
作为列,因为我需要HeaderTemplate
。但是,ItemTemplate
将单元格的内容呈现为<asp:Label>
,输出如下所示:
<td><span>data</span></td>
有没有办法让ItemTemplate
只渲染单元格的内容,以便输出看起来像这样:
<td>data</td>
感谢您的任何建议。
答案 0 :(得分:4)
为了简单起见,自动生成的内置模板将始终使用Label
,因为它们假设您可能希望进行格式化。如果您想获得基本的HTML输出,请使用Literal
代替Label
。 Literal
行为与Label
几乎相同,没有格式,因此没有span
个标记。将您的TemplateField
更改为以下内容:
<asp:TemplateField>
<ItemTemplate>
<asp:Literal ID="ltTestItem" runat="server" Text="Test" />
</ItemTemplate>
</asp:TemplateField>
它会产生:
<td>Test</td>
您可以通过将Text
值替换为Eval("yourField")
或者通过为控件实现OnDataBinding并根据需要对其进行操作来执行您想要的绑定。