This Way:
<asp:GridView ID="gvDemo" runat="server" OnRowDataBound="GridRowDataBound" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:TemplateField HeaderText="Fruites">
<ItemTemplate>
<asp:DropDownList ID="ddlstatus" AutoPostBack="true" runat="server">
<asp:ListItem Text="Mango" Value="1" />
<asp:ListItem Text="Apple" Value="2" />
<asp:ListItem Text="Banana" Value="3" />
</asp:DropDownList>
<asp:Label ID="lblFruites" Text="" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button Text="Save" OnClick="Save" runat="server" />
C#:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateGrid();
}
}
private void PopulateGrid()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2]{
new DataColumn("Code", typeof(int)),
new DataColumn("Name", typeof(string)) });
dt.Rows.Add(1, "Jake");
dt.Rows.Add(2, "John");
dt.Rows.Add(3, "Micheal");
gvDemo.DataSource = dt;
gvDemo.DataBind();
}
protected void Save(object sender, EventArgs e)
{
foreach (GridViewRow gr in gvDemo.Rows)
{
DropDownList ddls = (DropDownList)gr.FindControl("ddlstatus");
Label lbl = (Label)gr.FindControl("lblFruites");
if (ddls.SelectedItem.Value == "2" || ddls.SelectedItem.Value == "3")
{
lbl.Text = ddls.SelectedItem.Text;
ddls.Visible = false;
}
}
}