Search This Blog

Wednesday, October 13, 2010

Binding CheckBoxList Control the ADO.NET way.

Note that in this demo, I’m using the Northwind database. Now let’s set up the connection string.


STEP 1: Setting up the Connection string
In your webconfig file set up the connection string there as shown below:
<connectionStrings>
    <add name="DBConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

Note: DBConnection is the name of the Connection String that we can use as a reference in our codes.

In code behind, you can reference that connection string like this:

private string GetConnectionString()
{
   return System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
}

STEP 2: Binding the CheckBoxList Control
Same procedure as what we did for DropDownList and ListBox..
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Binding CheckBoxList</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:CheckBoxList ID="CheckBoxList1" runat="server" Width="200px">
        </asp:CheckBoxList>   
    </div>
    </form>
</body>
</html>

Here are relevant codes for binding the CheckBoxList in the code behind:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections.Specialized;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindCheckBoxList();
        }
    }

    private string GetConnectionString()
    {
        return System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
    }

    private void BindCheckBoxList()
    {
        DataTable dt = new DataTable();
        SqlConnection connection = new SqlConnection(GetConnectionString());
        try
        {
            connection.Open();
            string sqlStatement = "SELECT Top(20)* FROM Customers";
            SqlCommand sqlCmd = new SqlCommand(sqlStatement, connection);
            SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);

            sqlDa.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                CheckBoxList1.RepeatColumns = 4; // set the number of columns in the CheckBoxList
                CheckBoxList1.DataSource =dt;
                CheckBoxList1.DataTextField = "ContactName"; // the items to be displayed in the list items
                CheckBoxList1.DataValueField = "CustomerID"; // the id of the items displayed
                CheckBoxList1.DataBind();
            }
        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            string msg = "Fetch Error:";
            msg += ex.Message;
            throw new Exception(msg);
        }
        finally
        {
            connection.Close();
        }
    }
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.