我無法綁定edititem模板中存在的下拉列表。當我嘗試訪問它時,我得到空引用。gridview edititemtemplate中綁定下拉列表
我的設計:
<asp:TemplateField HeaderText ="Category">
<ItemTemplate >
<asp:Label ID="drpcategory" Text ='<%#Bind("category") %>' runat ="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="drpcategory1" AppendDataBoundItems="True" runat="server" >
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
我後面的代碼:
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
gv_table1.EditIndex = e.NewEditIndex;
DropDownList drpcategory1 = ((DropDownList)gv_table1.Rows[e.NewEditIndex].Cells[8].FindControl("drpcategory1"));
//BindDropDown(drpcategory1);
dt = con.GetData("Select category_name from category");
String str = gv_table1.Rows[e.NewEditIndex].FindControl("drpcategory1").GetType().ToString();
//((DropDownList)gv_table1.Rows[e.NewEditIndex].Cells[8].FindControl("drpcategory1")).DataSource = dt;
drpcategory1.DataSource = dt;
drpcategory1.DataTextField = "category_name";
drpcategory1.DataValueField = "category_name";
drpcategory1.DataBind();
this.setgrid();
}
我試着找上了網,妄圖很多東西。我對asp很陌生。提前致謝。我希望僅當用戶進入編輯模式時才能綁定下拉菜單。
什麼是gv_table1?我認爲這可能是問題。請檢查 – kbvishnu
由於'NamingContainer'不是單元格,因此不要使用'Cells [8] .FindControl(「drpcategory1」)'而是'row.FindControl(「drpcategory1」)''。你的方式更容易出錯。 –
我只使用row.findcontrol。我也使用了cells.I嘗試過但沒有得到想要的結果。 – Prashanth