从标题模板

时间:2016-03-27 13:50:36

标签: c# asp.net gridview

我在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属性。

请帮帮我。

1 个答案:

答案 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,然后访问其中的控件。