مثلا در مورد این
اولش که یه Gridview و یه sqldataadapter و اطلاعات رو از دیتابیس خونده و روال عادیه کاره...
بعد به جز فیلد هایی که مستقیم از دیتابیس با یه text پر شدن می خواین یه dropdownlist هم باشه که اینطوری به gridview اضافه شده:
<Columns>
<asp:BoundFieldDataField="CategoryID"HeaderText="CategoryID"/>
<asp:BoundFieldDataField="CategoryName"HeaderText="Category Name" />
...
اینجا ستون های gridview هست
و این هم dropdownlist مورد نظر
<asp:TemplateFieldHeaderText="Products">
<ItemTemplate>
<asp:DropDownListID="DropDownList1"runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
توی عکس هم مشخصه
بعد توی GridView1_RowDataBound گزینه های dropdownlist رو بهش اضافه کرده:
DataTable myTable = newDataTable();
DataColumn productIDColumn = newDataColumn("ProductID");
DataColumn productNameColumn = newDataColumn("ProductName");
myTable.Columns.Add(productIDColumn);
myTable.Columns.Add(productNameColumn);
DataSet ds = new DataSet();
ds = GetDataSet();
int categoryID = 0;
string expression = String.Empty;
if (e.Row.RowType == DataControlRowType.DataRow)
{
categoryID = Int32.Parse(e.Row.Cells[0].Text);
expression = "CategoryID = " + categoryID;
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
DataRow[] rows = ds.Tables[0].Select(expression);
foreach (DataRow row in rows)
{
DataRow newRow = myTable.NewRow();
newRow["ProductID"] = row["ProductID"];
newRow["ProductName"] = row["ProductName"];
myTable.Rows.Add(newRow);
}
ddl.DataSource = myTable;
ddl.DataTextField = "ProductName";
ddl.DataValueField = "ProductID";
ddl.DataBind();
}
که البته توی مثال شما آیتم های dropdownlist ثابته و datatable و اینا لازم نیست فقط یا دونه دونه آیتم ها رو اضافه می کنی مثلا با forی چیزی یا مثل این یه datasource بهش میدی...