我在asp .net应用程序中有一个GridView,其中模板字段的Header Text在字段的Header Template中设置为标签(它将来自资源文件)。以下是代码
<asp:GridView ID="gridView" ClientIDMode="Static" runat="server" AutoGenerateColumns="False" meta:resourcekey="grdViewResource">
<Columns>
<asp:TemplateField meta:resourcekey="TemplateFieldResource1">
<HeaderTemplate>
<asp:Label ID="lblNameHeader" Text="Name" runat="server" meta:resourcekey="lblNameHeaderResource1"/>
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblNameValue" Text='<%# Eval("Name") %>'/>
</ItemTemplate>
</Columns>
</asp:GridView>
在后面的代码中,我试图访问列上的HeaderText,就像这样
var headerText = gridView.Columns[0].HeaderText;
但是值为空,我无法从gridView.Columns&#39;中检索到它。 HeaderTemplate属性。
请帮帮我。
答案 0 :(得分:1)
您的代码存在一些问题。
您错过了结束asp:Label
。您的runat="server"
缺少<asp:GridView ID="gridView" ClientIDMode="Static" runat="server" AutoGenerateColumns="False" meta:resourcekey="grdViewResource">
<Columns>
<asp:TemplateField meta:resourcekey="TemplateFieldResource1" HeaderText="Name">
<ItemTemplate>
<asp:Label ID="lblNameValue" Text='<%# Eval("Name") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
属性。
如果您想使用.HeaderText属性,那么这应该是您的标记:
{{1}}
如果要在其中使用带有自定义标记的HeaderTemplate,则需要将列强制转换为TemplateField,然后访问其中的控件。