Ich möchte eine DropDownList in der Kopfzeile meines GridView haben. In meinem Codebehind kann ich nicht darauf zugreifen. Hier ist der Header:Wie greife ich auf ein Steuerelement in der HeaderTemplate von meinem GridView zu
<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>
Und hier ist der Abschnitt in der Code-behind, wo ich versuche, die Kontrolle für den Zugriff auf ‚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();
}
Sie werden feststellen, dass ich FindControl verwende, um einen Verweis auf das DropDownList-Steuerelement zu erhalten. Dieser Aufruf gibt null zurück, anstatt das Steuerelement zurückzugeben. Wie bekomme ich Zugriff auf das Steuerelement?