您的位置:首页 > 编程语言

用代码实现控件DropDownList的三级联动

2011-11-09 21:37 375 查看
1、编程实现省、市、县三级联动效果

具体要求:

l 在SQL Server数据库中创建一名为testdb的数据库,并创建如下三张表,并自行添加部分测试数据:

Province表,用于存放省份信息

字段名称
类型
长度
是否为主键
外键
说明
provinceId

varchar

2



省份代码

provinceName

varchar

15

省份名称

City表,用于存放城市信息

字段名称
类型
长度
是否为主键
外键
说明
cityId

int

4



城市代码

cityName

varchar

15

城市名称

provinceId

varchar

2



所在省份ID

County表,用来存放县市信息

字段名称
类型
长度
是否为主键
外键
说明
countryId

int

4



县代码

countryName

varchar

20

县名称

cityId

varchar

2



所在城市ID

1 新建一个网站项目,在Default.aspx页面中添加3个DropDownList控件,分别命名为ddlProvince、ddlCity、ddlCountry,分别表示省份、城市和县下拉列表框。界面设计Q1.ASPX页面所示。

2 当页面一开始出现时,首先将所有的省份信息加载到ddlProvince下拉列表框中,当用户选择某一省份时,将该省所有的城市信息显示在ddlCity下拉列表框中,当用户选择一个城市时,将该城市下所有的县显示在ddlCountry下拉框中。

主要代码:
添加命名空间:using System.Data;

using System.Data.SqlClient;
数据库连接:public static string strcon = @"data source=MSY;database=testdb;Integrated Security=TRUE";
protectedvoid Page_Load(objectsender, EventArgs e)
{
if(!IsPostBack)
{

SqlConnection conn = new SqlConnection(strcon);

SqlDataAdaptersda = new SqlDataAdapter("select * from Province", conn);

DataSetds = new DataSet();
sda.Fill(ds);
ddlProvince.DataSource = ds.Tables[0];
ddlProvince.DataTextField = "ProvinceName";
ddlProvince.DataValueField = "ProvinceId";
ddlProvince.DataBind();
}
protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)省份:/DropDownList的ddlProvince事件,同时注意属性autopostback值为True

{

string Id = ddlProvince.SelectedValue.ToString();

SqlConnection conn = new SqlConnection(strcon);

conn.Open();

string sq1 = "select * from City where ProvinceId='{0}'";

sq1 = string.Format(sq1, Id);

SqlDataAdapter da = new SqlDataAdapter(sq1, conn);

DataSet ds = new DataSet();

da.Fill(ds);

ddlCity.DataSource = ds.Tables[0];

ddlCity.DataTextField = "CityName";

ddlCity.DataValueField = "CityId";

ddlCity.DataBind();

}

protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)//城市

/DropDownList的ddlCity事件,同时注意属性autopostback值为True

{

string Id = ddlCity.SelectedValue.ToString();

SqlConnection conn = new SqlConnection(strcon);

conn.Open();

string sq1 = "select * from Country where CityId='{0}'";

sq1 = string.Format(sq1, Id);

SqlDataAdapter da = new SqlDataAdapter(sq1, conn);

DataSet ds = new DataSet();

da.Fill(ds);

ddlCountry.DataSource = ds.Tables[0];

ddlCountry.DataTextField = "CountyrName";

ddlCountry.DataValueField = "CountyrName";

ddlCountry.DataBind();

}

结果如下图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: