Tôi không thể ràng buộc danh sách thả xuống của tôi có trong mẫu chỉnh sửa. Tôi nhận được tham chiếu null khi tôi cố gắng truy cập nó.Danh sách thả xuống ràng buộc bên trong GridView edititemtemplate
thiết kế của tôi:
<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>
Mã của tôi đằng sau:
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();
}
Tôi đã thử tìm kiếm trên mạng và đã cố gắng rất nhiều điều vô ích. Tôi mới tham gia asp. Cảm ơn trước. Tôi muốn danh sách thả xuống bị ràng buộc chỉ khi người dùng vào chế độ chỉnh sửa.
gv_table1 là gì? Tôi nghĩ rằng đó có thể là vấn đề. Vui lòng kiểm tra – kbvishnu
Không sử dụng 'Ô [8] .FindControl (" drpcategory1 ")' nhưng 'row.FindControl (" drpcategory1 ")' vì 'NamingContainer' là hàng không phải là ô. Cách của bạn dễ bị lỗi hơn. –
Tôi đang sử dụng row.findcontrol chỉ. Tôi cũng đã sử dụng cells.I đã thử cả hai nhưng không nhận được kết quả mong muốn. – Prashanth