Choose Country corresponding state list appears

In this Blog we will know, when we choose a Country from a dropdownlist its corresponding state list appears in another dropdownlist. For that we drag and drop two dropdownlist from the toolbox and place those controls into the webpage.

Table structure

twotable.gif

Program

Default.aspx code

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default"
%>

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml
/DTD/xhtml1-transitional.dtd">

<
html xmlns="http://www.w3.org/1999/xhtml">
<
head runat="server">
    <title>Untitled Page</title>

</
head>
<
body>
    <form id="form1" runat="server">
    <div>
    <br />
     <asp:Label ID="Label3" runat="server" Text="Country" Width="100px"></asp:Label>
      <asp:DropDownList ID="DropDownList_country" runat="server" AutoPostBack="True"
            onselectedindexchanged="DropDownList_country_SelectedIndexChanged">
    </asp:DropDownList>
        <br />
    <asp:Label ID="Label2" runat="server" Text="State" Width="100px"></asp:Label>
    <asp:DropDownList ID="DropDownList_state" runat="server">
    </asp:DropDownList>
    </div>
    </form>

</
body>
</
html>


Default.aspx.cs code

using System;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Xml.Linq;
using
System.Data.SqlClient;
public
partial class _Default : System.Web.UI.Page
{
    string strConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    string str;
    SqlCommand com;
    protected void Page_Load(object sender, EventArgs e)
    {   
        SqlConnection con = new SqlConnection(strConnString);  
        if (!IsPostBack)
        {
            DropDownList_country.Items.Add("Choose country");
            con.Open();
            str = "select country from area group by country";
            com = new SqlCommand(str, con);
            SqlDataReader reader = com.ExecuteReader();
            while (reader.Read())
            {
                DropDownList_country.Items.Add(reader["country"].ToString());
            }
            reader.Close();
            con.Close();
        }
        DropDownList_state.Items.Clear();  
    }
    protected void DropDownList_country_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(strConnString);
        con.Open();
        str = "select * from area where country='" + DropDownList_country.SelectedItem.Text + "'";
        com = new SqlCommand(str, con);
        SqlDataReader reader = com.ExecuteReader();
        while (reader.Read())
        {
           DropDownList_state.Items.Add(reader["state"].ToString());
}
        reader.Close();
        con.Close();
    }
}

Output

twotable1.gif

Thanks for reading