Comment puis-je accéder à un contrôle dans le HeaderTemplate de mon GridView
Je veux avoir un DropDownList dans l'en-tête de mon GridView. Dans Mon code je n'arrive pas à y accéder. Voici la HeaderTemplate:
<asp:TemplateField SortExpression="EXCEPTION_TYPE">
<HeaderTemplate>
<asp:Label ID="TypeId" runat="server" Text="Type" ></asp:Label>
<asp:DropDownList ID="TypeFilter" runat="server" AutoPostBack="true">
</asp:DropDownList>
</HeaderTemplate>
...
</asp:TemplateField>
Et voici la section dans le code de derrière, où je suis en train d'essayer d'accéder à la commande 'TypeFilter'.
protected void ObjectDataSource1_Selected(object sender,
ObjectDataSourceStatusEventArgs e)
{
DataTable dt = (DataTable)e.ReturnValue;
int NumberOfRows = dt.Rows.Count;
TotalCount.Text = NumberOfRows.ToString();
DataView dv = new DataView(dt);
DataTable types = dv.ToTable(true, new string[] { "EXCEPTION_TYPE" });
DropDownList typeFilter = (DropDownList)GridView1.FindControl("TypeFilter");
typeFilter.DataSource = types;
typeFilter.DataBind();
}
Vous remarquerez que je suis en train d'utiliser FindControl pour obtenir une référence pour le Contrôle DropDownList. Cet appel renvoie la valeur null au lieu de retourner le contrôle. Comment puis-je accéder à la commande?
OriginalL'auteur minty | 2009-03-05
Vous devez vous connecter pour publier un commentaire.
Avec Répéteurs, vous accédez à headerTemplate éléments à l'aide de FindControl dans le OnItemDataBoundEvent comme ceci:
Fait ce travail pour GridViews?
OriginalL'auteur iZ.
OriginalL'auteur sathish kumar sandupatla
OriginalL'auteur user2077087
OriginalL'auteur Mubashir Ahmed
Essayez ceci pour trouver un contrôle dans le HeaderTemplate sans une ligne de données-lier, si c'est ce qui est nécessaire:
Grâce
Ruchir
OriginalL'auteur user2366118