In this blog I am going to show how we can work with
cascading dropdown list for country/state/city in asp.net using Entity
Framework.
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));
First create an empty web application
Add model as per we did in earlier for entity framework do the necessary
Add a web page to the solution and copy paste this in .aspx
page
<%@ Page
Language="C#" AutoEventWireup="true"
CodeBehind="cascading.aspx.cs" Inherits="counrtybasedropdown.cascading"
%>
<!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>
<center>
<h3>
Cascading DropDownList for
Country/State/City in ASP.Net</h3>
<table>
<tr>
<td>
Select a Country :
</td>
<td>
<asp:DropDownList
ID="ddlCountry" runat="server"
AutoPostBack="true"
OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
Select a State :
</td>
<td>
<asp:DropDownList
ID="ddlState" runat="server" Enabled="false"
AutoPostBack="true"
OnSelectedIndexChanged="ddlState_SelectedIndexChanged">
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
Select a City :
</td>
<td>
<asp:DropDownList
ID="ddlCity" runat="server" Enabled="false">
</asp:DropDownList>
</td>
</tr>
</table>
</center>
</div>
</form>
</body>
</html>
Your .aspx.cs should be as follows
using System;
using
System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using
System.Web.UI.WebControls;
namespace
counrtybasedropdown
{
public partial class cascading :
System.Web.UI.Page
{
Database1Entities dbEntity = new
Database1Entities();
protected void Page_Load(object sender,
EventArgs e)
{
if (!IsPostBack)
{
var country = from c in
dbEntity.countries select new { c.countryID, c.countryName };
ddlCountry.DataSource =
country.ToList();
ddlCountry.DataValueField =
"countryID";
ddlCountry.DataTextField =
"countryName";
ddlCountry.DataBind();
ddlCountry.Items.Insert(0,
"--Select--");
}
}
protected void
ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
int countyID =
Convert.ToInt16(ddlCountry.SelectedValue.ToString());
var state = from s in
dbEntity.states where s.countryID.Equals(countyID) select new { s.stateID,
s.stateName };
ddlState.DataSource =
state.ToList();
ddlState.Enabled = true;
ddlState.DataValueField =
"stateID";
ddlState.DataTextField =
"stateName";
ddlState.DataBind();
ddlState.Items.Insert(0,
"--Select--");
}
protected void
ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
int stateID =
Convert.ToInt16(ddlState.SelectedValue.ToString());
var city = from c in
dbEntity.cities where c.stateID.Equals(stateID) select new { c.cityID,
c.cityName };
ddlCity.DataSource = city.ToList();
ddlCity.Enabled = true;
ddlCity.DataValueField =
"cityID";
ddlCity.DataTextField =
"cityName";
ddlCity.DataBind();
ddlCity.Items.Insert(0,
"--Select--");
}
}
}
Happy coding..
Feel free to ask queries...
Hi mutanic the code was attached in the post right you can download and use it
ReplyDelete