Wiązanie dropdownlist wewnątrz gridview edititemtemplate

Nie mogę powiązać mojej listy rozwijanej obecnej w szablonie edititem. Otrzymuję zerowe odwołanie, gdy próbuję uzyskać do niego dostęp.

Mój projekt:

<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ój kod za:

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();
}

Próbowałem szukać w sieci i próbowałem wielu rzeczy na próżno. Jestem nowy w asp. Z góry dziękuję. Chciałbym, aby lista rozwijana była powiązana tylko wtedy, gdy użytkownik wejdzie w tryb edycji.

questionAnswers(5)

yourAnswerToTheQuestion