my aspx code:
<div>
<asp:GridView runat="server" ID="grdview">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList runat="server" ID="Select_Spin2" AutoPostBack="true" OnSelectedIndexChanged="Select_Spin2_IndexChanged">
<asp:ListItem Text="First" Value="1" />
<asp:ListItem Text="Second Value="2" />
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
My code behind
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
grdview.DataSource = dt;
grdview.DataBind();
}
}
protected void Select_Spin2_IndexChanged(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Column1");
DataRow dr = dt.NewRow();
foreach (GridViewRow gvr in grdview.Rows)
{
dr = dt.NewRow();
dr["Column1"] = ((DropDownList)gvr.Cells[0].FindControl("Select_Spin2")).SelectedValue;
dt.Rows.Add(dr);
}
DataRow dr1 = dt.NewRow();
dt.Rows.Add(dr1);
grdview.DataSource = dt;
grdview.DataBind();
foreach (GridViewRow row in grdview.Rows)
{
DropDownList ddl = row.FindControl("Select_Spin2") as DropDownList;
ddl.SelectedValue = row.Cells[1].Text;
}
}
}