how to add dropdown list in gridview and how to populate data in that dropdown list

Thanks in advance

7 Years
Discussion Span
Last Post by crishjeny

Adding a Dropdownlist in gridview and add a Datasource to the dropdownlist

first drag and drop one gridview:
in the below example just i am going to display two columns in a gridview.one column for id and another column displaying a dropdownlist with data through sqldatasource..

in gridview create a <ItemTemplate> as follows

<asp:GridView ID="GridView1" runat="server" Style="z-index: 100; left: 292px; position: absolute; 
top: 135px" AutoGenerateColumns="False"> 
<asp:TemplateField HeaderText="ID"> 
<asp:Label id="idlbl" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"id")%>' > 

//adding a DropdownList in Gridview 

<asp: TemplateField HeaderText="select Salary"> 
<asp: DropDownList ID="ddl" runat ="server" DataTextField ="salary" DataValueField ="id" DataSourceID ="SqlDataSource1" > 
</asp: DropDownList> 
</asp:TemplateField> </Columns> 

in the above <asp:Dropdownlist > i created one sqldatasouce.
How to create a SqlDataSource?
First Drag and drop on sqldatasource(SqlDataSource1) from a ToolBox on a webpage.then select SqlDataSource1 to bind a Data by clicking on the Right edge of a SqlDataSource.
in above <asp:DropDownlist> i set DataTextField="salary" and DataValueField="id".Here salary and id are coulmns in a emp table.

afer sucessfull Binding data with SqlDataSource looks as Below
[B<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:db1ConnectionString %>"
ProviderName="<%$ ConnectionStrings:db1ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [emp]">
</asp:SqlDataSource> >

In Page Load you have to bind a Data to Gridview as follows:

protected void Page_Load(object sender, EventArgs e) 
SqlConnection conn = new SqlConnection("connection string"); 
SqlDataAdapter ad = new SqlDataAdapter("select * from emp", conn); 
DataSet ds = new DataSet(); 
ad.Fill(ds, "emp"); 
GridView1.DataSource = ds.Tables[0]; 


Edited by pritesh2010: n/a



Its not easy to to add dropdown list in gridview .you can refer following example.

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        GridViewRow gvr=GridView1.SelectedRow;
        CheckBox chk = (CheckBox)gvr.FindControl("CheckBox1");
        DropDownList dp = (DropDownList)sender;
        if (dp.SelectedValue == "P")
            chk.Enabled = true;
            chk.Enabled = false;

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
        GridViewRow gvr = GridView1.SelectedRow;
        Label lblINTIME = (Label)gvr.FindControl("lblInTime");
        lblINTIME.Text = "asasf";  // assign system date time here

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        GridView1.SelectedIndex = e.NewEditIndex;

Otherwise you can check this link.It will help you to add dropdown list in gridview


Edited by mike_2000_17: Fixed formatting

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.