Thursday, October 7, 2010

Bind DropDownList in GridView

Default.aspx
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
        <Columns>
        <asp:TemplateField HeaderText="Sno">
        <ItemTemplate>
        <%# Container.DataItemIndex + 1 %>
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Salary">
         <ItemTemplate>
        <%#Eval("Salary")  %>
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Address">
         <ItemTemplate>
        <%#Eval("Salary")  %>
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Deptno">
         <ItemTemplate>
        <%#Eval("Salary")  %>
        </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="EmpName">
        <ItemTemplate>
        <asp:DropDownList ID="ddl" runat="server">
        <asp:ListItem>--Select--</asp:ListItem>
        </asp:DropDownList>
        </ItemTemplate>
        </asp:TemplateField>
        </Columns>
</asp:GridView>
Default.aspx.cs

protected
void Page_Load(object sender, EventArgs e){    BindGrid();}
private
void BindGrid(){    SqlConnection con = new SqlConnection("");    SqlDataAdapter da = new SqlDataAdapter("select * from emp", con);    da.Fill(ds, "Emp");    GridView1.DataSource = ds;    GridView1.DataBind();    foreach (GridViewRow grdRow in GridView1.Rows)    {        DropDownList drdList = new DropDownList();        // Nested DropDownList Control reference is passed to the DrdList object. This will allow you access the properties of dropdownlist placed inside the GridView Template column.        drdList = (DropDownList)( GridView1.Rows[ grdRow.RowIndex ].Cells[1].FindControl( "ddl" ));        // DataBinding of nested DropDownList Control for each row of GridView Control.        drdList.DataSource = ds;        drdList.DataValueField = "Sno"        drdList.DataTextField = "Name";        drdList.DataBind();    }
}

No comments:

Post a Comment