/ / Acessando a propriedade Text Header do GridView TemplateField no Code Behind quando ele é definido no Template do Cabeçalho - c #, asp.net, gridview

Acessando a propriedade Text de cabeçalho do GridView TemplateField no Code Behind quando ele é definido a partir do modelo de cabeçalho - c #, asp.net, gridview

Eu tenho um GridView em um asp.net application, onde o Texto de cabeçalho de um campo de modelo é definido no modelo de cabeçalho do campo, como um rótulo (de onde virá do arquivo de recurso). Abaixo está o código

<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>

No código por trás estou tentando acessar o HeaderText definido na coluna como este

var headerText = gridView.Columns[0].HeaderText;

Mas o valor está vindo em Empty e não consigo recuperá-lo da propriedade gridView.Columns "HeaderTemplate também.

Por favor me ajude.

Respostas:

1 para resposta № 1

Você tem vários problemas com seu código.

Você está perdendo um fechamento </asp:TemplateField>. Seu asp:Label está faltando um runat="server" atributo.

Se você quiser usar a propriedade .HeaderText, esta deve ser sua marcação:

<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>

Se você quiser usar um HeaderTemplate com marcação personalizada, será necessário converter a coluna para um TemplateField e, em seguida, acessar os controles dentro dela.