简单的省市两级联动
2012-05-24 21:49
148 查看
这次看教程又碰到了DropDownList控件实现的两级联动,上次由于VS出了点问题,所以没实现,这次决定实现一下。
前台界面是下面两个不修边幅的DropDownList:
![](http://my.csdn.net/uploads/201205/24/1337865938_6054.jpg)
数据库查询语句如下:
后台代码如下:
运行结果:
![](http://my.csdn.net/uploads/201205/24/1337866498_4781.jpg)
需要注意的是,应该把两个DropDownList的AutoPostBack属性设置为True。通过这个例子,终于分清楚了选择系列控件中的DataTextField和DataValueField,实现的过程中还犯了一个低级错误,就是把这两个控件的数据绑定都放到了回发判断语句下面,结果是无论选择那个省级的项,市级一直是“北京”,这是因为判断了回发,所以即使重新选择,也不会更新市级数据。关于IsPostBack的使用,欢迎访问我的博客《不要“若只如初见”——WEB/BS开发必备基础知识》
因为只是为了简单说明两级联动这个例子,所以在实现方面没有建立BLL和DLL注释也稍显拙劣。
前台界面是下面两个不修边幅的DropDownList:
![](http://my.csdn.net/uploads/201205/24/1337865938_6054.jpg)
数据库查询语句如下:
use beidaqingniao create table sheng ( proID int primary key, proName varchar(30) not null ) insert into sheng values(1,'北京') insert into sheng values(2,'黑龙江') insert into sheng values(3,'河北') insert into sheng values(4,'山东') insert into sheng values(5,'天津') insert into sheng values(6,'台湾') create table chengshi ( cityID int primary key, proID int foreign key references sheng(proID), cityName varchar(30) not null ) insert into chengshi values(1,1,'北京') insert into chengshi values(2,2,'哈尔滨') insert into chengshi values(3,2,'齐齐哈尔') insert into chengshi values(4,3,'保定') insert into chengshi values(4,3,'廊坊')数据库结构很简单,sheng(又命名不规范了……)表中的proID是chengshi表中proID的外键。
后台代码如下:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack ) { SqlConnection con = GetConnString(); con.Open(); SqlCommand sqlcmd = new SqlCommand("select * from sheng", con); SqlDataReader reader = sqlcmd.ExecuteReader(); //生成sheng表的sqldatareader drpProvince.DataSource = reader; //数据源 drpProvince.DataTextField = "proName"; //显示的字段为proName(省名) drpProvince.DataValueField = "proID"; //字段值为proID(省ID) drpProvince.DataBind();//绑定 reader.Close(); //关闭sqldatareader con.Close(); //关闭连接 } SqlConnection conn = GetConnString(); conn.Open(); SqlCommand sqlcity = new SqlCommand("select * from chengshi where proID=" + drpProvince.SelectedItem.Value, conn); SqlDataReader readercity = sqlcity.ExecuteReader(); drpCity.DataSource = readercity; drpCity.DataTextField = "cityName"; drpCity.DataValueField = "cityID"; drpCity.DataBind(); readercity.Close(); conn.Close (); } public SqlConnection GetConnString() { //建立连接 SqlConnection con = new SqlConnection("Server=.;database=beidaqingniao;uid=sa;pwd=123456"); return con; }
运行结果:
![](http://my.csdn.net/uploads/201205/24/1337866498_4781.jpg)
需要注意的是,应该把两个DropDownList的AutoPostBack属性设置为True。通过这个例子,终于分清楚了选择系列控件中的DataTextField和DataValueField,实现的过程中还犯了一个低级错误,就是把这两个控件的数据绑定都放到了回发判断语句下面,结果是无论选择那个省级的项,市级一直是“北京”,这是因为判断了回发,所以即使重新选择,也不会更新市级数据。关于IsPostBack的使用,欢迎访问我的博客《不要“若只如初见”——WEB/BS开发必备基础知识》
因为只是为了简单说明两级联动这个例子,所以在实现方面没有建立BLL和DLL注释也稍显拙劣。
相关文章推荐
- 简单的两级联动ajax加载省市
- AJAX实现简单的省市二级联动
- [js]实现简单的省市二级联动下拉选择菜单
- JQuery EasyUI combobox 省市两级联动
- jQuey/js 省市县三级下拉框联动的回显(简单易懂)
- 省市二级联动 通过省份选择城市 JS的简单应用 二级下拉列表
- 省市联动的简单实现
- JS 省市两级联动(不带地区版本)
- JQuery实现省市两级联动
- 简单代码实现复杂的省市联动程序-js
- jQuery 中国省市两级联动(实用)
- 省市联动效果的简单实现代码(推荐)
- 用JS完成一个简单的省市二级联动
- 原生JavaScript实现的简单省市县三级联动功能示例
- php jquery ajax json 全国省市区三级联动下拉列表 简单实现
- php jquery ajax json 全国省市区三级联动下拉列表 简单实现
- C# comboBox实现省市两级联动(winform)
- js实现简单的省市县三级联动效果实例
- js实现省市联动效果的简单实例
- 一个简单的js的省市二级联动菜单(转)