Populate
One Asp.net Dropdown based on Selection in Another Dropdown
Cascading
Dropdownlist
Create three
tables as per our need
CREATE TABLE
country
(
countryID INT NOT NULL,
countryName varchar(50) NOT NULL,
PRIMARY KEY (countryID ),
);
CREATE TABLE state
(
stateID
INT NOT NULL,
countryID
INT NOTNULL,
stateName
varchar(50) NOT NULL,
PRIMARY KEY
(stateID ),
FOREIGN KEY
(countryID ) REFERENCES country (countryID));
CREATE TABLE city
(
cityID
INT NOT NULL,
stateID INT
NOTNULL,
cityName
varchar(50) NOT NULL,
PRIMARY KEY
(cityID),
FOREIGN
KEY (stateID) REFERENCES state (stateID));
.ASPX CODE
<%@ Page
Language="C#"
AutoEventWireup="true"
CodeFile="CascadingDropdownlist.aspx.cs"
Inherits="CascadingDropdownlist"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<div>
<table align="center">
<tr>
<td>
Select Country:
</td>
<td>
<asp:DropDownList ID="ddlCountry" runat="server" AutoPostBack="true"
onselectedindexchanged="ddlCountry_SelectedIndexChanged"></asp:DropDownList>
</td>
</tr>
<tr>
<td>
Select State:
</td>
<td>
<asp:DropDownList ID="ddlState" runat="server" AutoPostBack="true"
onselectedindexchanged="ddlState_SelectedIndexChanged"></asp:DropDownList>
</td>
</tr>
<tr>
<td>
Select CITY:
</td>
<td>
<asp:DropDownList ID="ddlRegion" runat="server"></asp:DropDownList>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
.cs code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class CascadingDropdownlist
: System.Web.UI.Page
{
string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
protected void
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindContrydropdown();
}
}
/// <summary>
/// Bind COuntrydropdown
/// </summary>
protected void
BindContrydropdown()
{
//conenction path for database
SqlConnection con = new
SqlConnection(str);
con.Open();
SqlCommand cmd = new
SqlCommand("select
* from country", con);
SqlDataAdapter da = new
SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
ddlCountry.DataSource = ds;
ddlCountry.DataTextField = "countryName";
ddlCountry.DataValueField = "countryID";
ddlCountry.DataBind();
ddlCountry.Items.Insert(0, new ListItem("--Select--",
"0"));
ddlState.Items.Insert(0, new ListItem("--Select--",
"0"));
ddlRegion.Items.Insert(0, new ListItem("--Select--",
"0"));
}
/// <summary>
/// Bind State Dropdown
Based on CountryID
/// </summary>
protected void
ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
int countryID = Convert.ToInt32(ddlCountry.SelectedValue);
SqlConnection con = new
SqlConnection(str);
con.Open();
SqlCommand cmd = new
SqlCommand("select
* from state where countryID ="
+ countryID, con);
SqlDataAdapter da = new
SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
ddlState.DataSource = ds;
ddlState.DataTextField = "stateName";
ddlState.DataValueField = "stateID";
ddlState.DataBind();
ddlState.Items.Insert(0, new ListItem("--Select--",
"0"));
if (ddlState.SelectedValue == "0")
{
ddlRegion.Items.Clear();
ddlRegion.Items.Insert(0, new ListItem("--Select--",
"0"));
}
}
/// <summary>
/// Bind Region dropdown
based on Re
/// </summary>
protected void
ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
int stateID = Convert.ToInt32(ddlState.SelectedValue);
SqlConnection con = new
SqlConnection(str);
con.Open();
SqlCommand cmd = new
SqlCommand("select
* from city where stateID =" + stateID, con);
SqlDataAdapter da = new
SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
ddlRegion.DataSource
= ds;
ddlRegion.DataTextField = "cityName";
ddlRegion.DataValueField = "cityID";
ddlRegion.DataBind();
ddlRegion.Items.Insert(0, new ListItem("--Select--",
"0"));
}
}
No comments:
Post a Comment