Monday 13 May 2013

Data Binding to DropDownList and ListBox in ASP.NET


Data Binding to DropDownList and ListBox in ASP.NET

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();
        }
    }

No comments:

Post a Comment