Если вы используете столбец шаблона, вы можете привязать раскрывающийся список к разметке с помощью выражений привязки данных.Например,
<asp:TemplateField HeaderText="XYZ">
<ItemTemplate>
<asp:DropDownList runat="server" ID="MyDD" DataSourceId="MyDataSource" />
</ItemTemplate>
</asp:TemplateField>
Выше предполагает, что ваши раскрывающиеся данные в постоянных по строкам.Если он меняется, вы можете использовать выражение привязки данных, например
<asp:DropDownList runat="server" DataSource='<%# GetDropDownData(Container) %>' DataTextField="Text" DataValueField="Value" />
GetDropDownData будет защищенным методом в программном обеспечении, который будет возвращать данные (таблица данных, список, массив) для заданногоrow.
Вы можете использовать событие GridView.RowDataBound (или событие RowCreated) в коде для заполнения раскрывающихся списков.Например,
protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
// Find the drop-down (say in 3rd column)
var dd = e.Row.Cells[2].Controls[0] as DropDownList;
if (null != dd) {
// bind it
}
/*
// In case of template fields, use FindControl
dd = e.Row.Cells[2].FindControl("MyDD") as DropDownList;
*/
}
}