This might provides you some of the idea:
Example code:
<asp:Button ID="Button_Save" runat="server" Text="Save" OnClick="Button_Save_Click" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="id" HeaderText="ID" />
<asp:TemplateField HeaderText="Pending Account">
<ItemTemplate>
<asp:DropDownList ID="dropAction" runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Code behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using MySql.Data.MySqlClient;
using System.Data;
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = GetData();
GridView1.DataBind();
foreach (GridViewRow gr in GridView1.Rows)
{
DropDownList d = (DropDownList)gr.Cells[1].FindControl("dropAction");
BindData_DropAction(d);
}
}
}
DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Rows.Add("1");
dt.Rows.Add("2");
dt.Rows.Add("3");
return dt;
}
void BindData_DropAction(DropDownList d)
{
DataTable dt = new DataTable();
dt.Columns.Add("action");
dt.Columns.Add("display");
dt.Rows.Add("approved", "Yes, Approve This");
dt.Rows.Add("rejected", "No, Reject This");
d.DataSource = dt;
d.DataTextField = "display";
d.DataValueField = "action";
d.DataBind();
}
protected void Button_Save_Click(object sender, EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (GridViewRow gr in GridView1.Rows)
{
string id = gr.Cells[0].Text;
string action = ((DropDownList)gr.Cells[1].FindControl("dropAction")).SelectedValue;
string result = string.Format("ID: {0} is {1}.", id, action);
sb.AppendLine(result);
}
Response.Clear();
Response.Write("<pre>");
Response.Write(sb.ToString());
Response.Write("</pre>");
Response.End();
}
}