ARTICLE

Data Binding to DropDownList and ListBox in ASP.NET

Posted by Abhimanyu K Vatsa Articles | JQuery June 18, 2012
In this quick article you will learn how to bind the data to a DropDownList and ListBox controls in ASP.NET.
Reader Level:

Introduction

In this quick article you will learn how to bind the data to a DropDownList and ListBox controls in ASP.NET. I know this is very easy but today a novice ASP.NET guy who is my friend on Facebook asked me about this and I created this solution for him.

Look at the animated image that we are going to create in this article.

image1.gif
 

Binding Data to DropDownList Control

To bind the data to DDL, just place the DDL Control on your web page and write the C# logic in code-behind.

Default.aspx Code

    <div>
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">

        </asp:DropDownList>
    </div>

C# Code

        DropDownList1.Items.Add(new ListItem("Select Customer", ""));
        DropDownList1.AppendDataBoundItems =
true;
       
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
       
String strQuery = "SELECT CustomerID, ContactName FROM Customers";
        
SqlConnection con = new SqlConnection(strConnString);
       
SqlCommand cmd = new SqlCommand();
        cmd.CommandType =
CommandType.Text;
        cmd.CommandText = strQuery;
        cmd.Connection = con;
       
try
        {
            con.Open();
            DropDownList1.DataSource = cmd.ExecuteReader();
            DropDownList1.DataTextField =
"ContactName";
            DropDownList1.DataValueField =
"CustomerID";
            DropDownList1.DataBind();
        }
       
catch (Exception ex)
        {
           
throw ex;
        }
       
finally
        {
            con.Close();
            con.Dispose();
        }

Binding Data to ListBox Control

To bind the data to the LB, just place the LB Control on your web page and write the C# logic in code-behind.

Default2.aspx

    <div>
        <asp:ListBox ID="ListBox1" runat="server">

        </asp:ListBox>
    </div>

Default2.aspx.cs

        ListBox1.Items.Add(new ListItem("Select Customer", ""));
        ListBox1.AppendDataBoundItems =
true;
       
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
       
String strQuery = "SELECT CustomerID, ContactName FROM Customers";
       
SqlConnection con = new SqlConnection(strConnString);
       
SqlCommand cmd = new SqlCommand();
        cmd.CommandType =
CommandType.Text;
        cmd.CommandText = strQuery;
        cmd.Connection = con;
       
try
        {
            con.Open();
            ListBox1.DataSource = cmd.ExecuteReader();
            ListBox1.DataTextField =
"ContactName";
            ListBox1.DataValueField =
"CustomerID";
            ListBox1.DataBind();
        }
       
catch (Exception ex)
        {
           
throw ex;
        }
       
finally
        {
            con.Close();
            con.Dispose();
        }

If you want to execute some business logic when the user selects the item from a DropDownList, you just need to add another method and call it from the DropDownList's OnSelectedIndexChanged. Find the code below:

Defaulat.aspx

        <div>
            Select Customer ID
               
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
                    OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                </asp:DropDownList>
            <br /><br /><br />
            <hr />
            <br />
                Company Name: <asp:TextBox ID="txtCompanyName" runat="server"></asp:TextBox>
            <br />
                Contact Title: <asp:TextBox ID="txtContactTitle" runat="server"></asp:TextBox>
            <br />
                Address: <asp:TextBox ID="txtAddress" runat="server"></asp:TextBox>
            <br />
                City: <asp:TextBox ID="txtCity" runat="server"></asp:TextBox>
            <br />
                Country: <asp:Label ID="lblCountry" runat="server" Text=""></asp:Label>
            <br />

        </div>

Default.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
    {
       
if (!IsPostBack)
        {
            DropDownList1.Items.Add(
new ListItem("Select Customer", ""));
            DropDownList1.AppendDataBoundItems =
true;
           
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
           
String strQuery = "SELECT CustomerID, ContactName FROM Customers";
           
SqlConnection con = new SqlConnection(strConnString);
           
SqlCommand cmd = new SqlCommand();
            cmd.CommandType =
CommandType.Text;
            cmd.CommandText = strQuery;
            cmd.Connection = con;
           
try
            {
                con.Open();
                DropDownList1.DataSource = cmd.ExecuteReader();
                DropDownList1.DataTextField =
"ContactName";
                DropDownList1.DataValueField =
"CustomerID";
                DropDownList1.DataBind();
            }
           
catch (Exception ex)
            {
               
throw ex;
            }
           
finally
            {
                con.Close();
                con.Dispose();
            }
        }
    }

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
       
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
       
String strQuery = "SELECT * FROM Customers WHERE CustomerID = @CustomerID";
       
SqlConnection con = new SqlConnection(strConnString);
       
SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue(
"@CustomerID", DropDownList1.SelectedItem.Value);
        cmd.CommandType =
CommandType.Text;
        cmd.CommandText = strQuery;
        cmd.Connection = con;
       
try
        {
            con.Open();
           
SqlDataReader sdr = cmd.ExecuteReader();
           
while (sdr.Read())
            {
                txtCompanyName.Text = sdr[
"CompanyName"].ToString();
                txtContactTitle.Text = sdr[
"ContactTitle"].ToString();
                txtAddress.Text = sdr[
"Address"].ToString();
                txtCity.Text = sdr[
"City"].ToString();
                lblCountry.Text = sdr[
"Country"].ToString();
            }
        }
       
catch (Exception ex)
        {
           
throw ex;
        }
       
finally
        {
            con.Close();
            con.Dispose();
        }
    }

I hope you like it. Thanks. Happy Coding!

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and add new content to existing PDF documents from within your applications.
Join a Chapter
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.