1
Gridview의 edititemtemplate 섹션에서이 컨트롤을 찾으려고합니다. 여기 칸트는 Gridview의 edittemplate에서 콤보 박스 컨트롤을 찾았습니다.
<EditItemTemplate>
<ajaxToolkit:ComboBox ID="GridviewCategoryComboBox1" AppendDataBoundItems="true" runat="server" AutoCompleteMode="Suggest" DataSourceID="GridViewCategorySqlDataSource1" DataTextField="Name" DataValueField="Id" MaxLength="0" Style="display: inline;">
<asp:ListItem>Select Category</asp:ListItem>
</ajaxToolkit:ComboBox>
내가 edititem 템플릿에있는 컨트롤을 가져 오기 위해 시도 이벤트 핸들러입니다.
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs
e)
{
GridView1.EditIndex = e.NewEditIndex;
int id = (int)GridView1.DataKeys[e.NewEditIndex].Value;
ComboBox ddl = GridView1.Rows[e.NewEditIndex].Cells[1].FindControl("GridviewCategoryComboBox1") as ComboBox;
}
누가 찾든지 상관없이 null을 반환합니다. ,
protected void GridView1_RowDataBound(object sender, GridViewEditEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
if ((e.Row.RowState & DataControlRowState.Edit) > 0) {
ComboBox ddl = (ComboBox)e.Row.FindControl("GridviewCategoryComboBox1");
}
}
}
당신이 RowDataBound
경우에 다른 코드를 가능성이 있기 때문에 : 당신은이에 대한 RowDataBound
이벤트를 사용할 수 있습니다
ComboBox ddl = GridView1.Rows[e.NewEditIndex].FindControl("GridviewCategoryComboBox1") as ComboBox;
이 제조법을 시도해 볼 수 있습니다. https://blog.codinghorror.com/recursive-pagefindcontrol/ – hardkoded