Вы можете создать поле шаблона следующим образом:
<columns>
<asp:TemplateField HeaderText="code">
<ItemTemplate>
<asp:DropDownList ID ="ddlCode" runat="server" AppendDataBoundItems="true" CssClass="DropDn1" />
</ItemTemplate>
</asp:TemplateField>
</columns>
В событии привязки строки к сетке вы будете привязывать его, если хотите привязать из базы данных.
protected void RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList code= (DropDownList)e.Row.FindControl("ddlCode") as DropDownList;
if (code!= null)
{
//Bind the dropdownlist
}
}
Чтобы получить значение из выпадающего списка в событии редактирования, вы сделаете следующее:
string code = (row.FindControl("ddlCode") as DropDownList).Text);