我有一个GridView,它有一些ItemTemplates。这些itemtemplate包含UpdatePanel内的一些服务器控件。 当我对服务器进行异步回发并使用" FindControl"时,我得到一个NullPointerException,因为在我的代码中我以这种方式使用FindControl:
GridViewRow row = (sender as DropDownList).Parent.Parent as GridViewRow;
DropDownList ddlAffaireDr= (DropDownList)row.FindControl("ddlAffaireDr");
似乎因为gridview不在updatepanel中,所以我无法引用它的行。而且我不想在更新面板中制作gridview。 ASPX代码:
<asp:GridView Width="100%"
ID="tempsBudgetGV" runat="server" AutoGenerateColumns="False" DataKeyNames="TempsId" EmptyDataText="Pas de lignes." OnRowDataBound="tempsBudgetGV_RowDataBound" ShowFooter="true" OnPreRender="tempsBudgetGV_PreRender">
<Columns>
<asp:TemplateField HeaderText="Contrat">
<ItemTemplate>
<asp:UpdatePanel ID="UpdatePanel99" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlAffaireDr" runat="server" CssClass="ArtSup input-large form-control" ></asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>