Saturday, December 15, 2012

How To Add DropDownList inside the GridView

Design the GridView as follows.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

            CellPadding="4" ForeColor="#333333" GridLines="None"
            <AlternatingRowStyle BackColor="White" />
                <asp:BoundField DataField="Name" HeaderText="Name" />
                <asp:TemplateField HeaderText="Country">
                <asp:DropDownList runat="server" ID="drItems"></asp:DropDownList>

GridView contains two columns one is bound filed and the other field is a TemplateField where dropdown field is added.

Create the data table as follows to bind to the grid view.

private DataTable createBindDatatable()

        DataTable dt = new DataTable();
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("Country", typeof(string));
        dt.Columns.Add("Nationality", typeof(string));

        dt.Rows.Add("Chamara", "Sri lanaka", "Sri lanakan");
        dt.Rows.Add("Sam", "America","American");
        dt.Rows.Add("Jhon", "India","Indian");
        dt.Rows.Add("Cater", "Pakistan","Pakistani");
        dt.Rows.Add("Amanda", "Australia", "Australian");
        return dt;

In the GridView Row bound event add the below code.

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

        if (e.Row.RowType == DataControlRowType.DataRow)
            DropDownList DR = (DropDownList)e.Row.FindControl("drItems");
            DR.DataSource = createDatatable();
            DR.DataTextField = "Country";
            DR.DataValueField = "Country";
            DR.Items.Insert(0, new ListItem("Select Below", "0"));

Finally bind the GridView.

protected void Page_Load(object sender, EventArgs e)
        if (!Page.IsPostBack)
            GridView1.DataSource = createDatatable();

No comments:
Write comments
Recommended Posts × +