二级联动
我想做一个省市二级联动,省市是两个asp.net用户控件,该怎么做?麻烦各位大虾帮忙看看吧!
[解决办法]
我收藏了一个Demo,测试可用,你试试,后台用Request["KeyName"]获取
http://pan.baidu.com/share/link?shareid=419398&uk=1057421076
[解决办法]
后台要刷新页面,用户体验不好,推荐 ajax 。。这类的联动一艘一大堆的。
http://www.baidu.com/s?wd=ajax+%E4%B8%89%E7%BA%A7%E8%81%94%E5%8A%A8&rsv_bp=0&ch=&tn=mswin_oem_dg&bar=&rsv_spt=3&ie=utf-8&rsv_sug3=12&rsv_sug=0&rsv_sug4=816&rsv_sug1=5&inputT=3602
[解决办法]
这个适合你
[解决办法]
<script type="text/javascript">
var where = new Array(35);
function comefrom(loca, locacity) { this.loca = loca; this.locacity = locacity; }
where[0] = new comefrom("请选择省份名", "请选择城市名");
where[1] = new comefrom("北京", "
[解决办法]
东城
[解决办法]
西城
[解决办法]
崇文
[解决办法]
宣武
[解决办法]
朝阳
[解决办法]
丰台
[解决办法]
石景山
[解决办法]
海淀
[解决办法]
门头沟
[解决办法]
房山
[解决办法]
通州
[解决办法]
顺义
[解决办法]
昌平
[解决办法]
大兴
[解决办法]
平谷
[解决办法]
怀柔
[解决办法]
密云
[解决办法]
延庆");
where[2] = new comefrom("上海", "
[解决办法]
黄浦
[解决办法]
卢湾
[解决办法]
徐汇
[解决办法]
长宁
[解决办法]
静安
------解决方案--------------------
普陀
[解决办法]
闸北
[解决办法]
虹口
[解决办法]
杨浦
[解决办法]
闵行
[解决办法]
宝山
[解决办法]
嘉定
[解决办法]
浦东
[解决办法]
金山
[解决办法]
松江
[解决办法]
青浦
[解决办法]
南汇
[解决办法]
奉贤
[解决办法]
崇明");
where[3] = new comefrom("天津", "
[解决办法]
和平
[解决办法]
东丽
[解决办法]
河东
[解决办法]
西青
[解决办法]
河西
[解决办法]
津南
[解决办法]
南开
[解决办法]
北辰
[解决办法]
河北
[解决办法]
武清
[解决办法]
红挢
[解决办法]
塘沽
[解决办法]
汉沽
[解决办法]
大港
[解决办法]
宁河
[解决办法]
静海
[解决办法]
宝坻
[解决办法]
蓟县");
where[4] = new comefrom("重庆", "
[解决办法]
万州
[解决办法]
涪陵
[解决办法]
渝中
[解决办法]
大渡口
[解决办法]
江北
------解决方案--------------------
沙坪坝
[解决办法]
九龙坡
[解决办法]
南岸
[解决办法]
北碚
[解决办法]
万盛
[解决办法]
双挢
[解决办法]
渝北
[解决办法]
巴南
[解决办法]
黔江
[解决办法]
长寿
[解决办法]
綦江
[解决办法]
潼南
[解决办法]
铜梁
[解决办法]
大足
[解决办法]
荣昌
[解决办法]
壁山
[解决办法]
梁平
[解决办法]
城口
[解决办法]
丰都
[解决办法]
垫江
[解决办法]
武隆
[解决办法]
忠县
[解决办法]
开县
[解决办法]
云阳
[解决办法]
奉节
[解决办法]
巫山
[解决办法]
巫溪
[解决办法]
石柱
[解决办法]
秀山
[解决办法]
酉阳
[解决办法]
彭水
[解决办法]
江津
[解决办法]
合川
[解决办法]
永川
[解决办法]
南川");
where[5] = new comefrom("河北", "
[解决办法]
石家庄
[解决办法]
邯郸
[解决办法]
邢台
------解决方案--------------------
保定
[解决办法]
张家口
[解决办法]
承德
[解决办法]
廊坊
[解决办法]
唐山
[解决办法]
秦皇岛
[解决办法]
沧州
[解决办法]
衡水");
where[6] = new comefrom("山西", "
[解决办法]
太原
[解决办法]
大同
[解决办法]
阳泉
[解决办法]
长治
[解决办法]
晋城
[解决办法]
朔州
[解决办法]
吕梁
[解决办法]
忻州
[解决办法]
晋中
[解决办法]
临汾
[解决办法]
运城");
where[7] = new comefrom("内蒙古", "
[解决办法]
呼和浩特
[解决办法]
包头
[解决办法]
乌海
[解决办法]
赤峰
[解决办法]
呼伦贝尔盟
[解决办法]
阿拉善盟
[解决办法]
哲里木盟
[解决办法]
兴安盟
[解决办法]
乌兰察布盟
[解决办法]
锡林郭勒盟
[解决办法]
巴彦淖尔盟
[解决办法]
伊克昭盟");
where[8] = new comefrom("辽宁", "
[解决办法]
沈阳
[解决办法]
大连
[解决办法]
鞍山
[解决办法]
抚顺
[解决办法]
本溪
------解决方案--------------------
丹东
[解决办法]
锦州
[解决办法]
营口
[解决办法]
阜新
[解决办法]
辽阳
[解决办法]
盘锦
[解决办法]
铁岭
[解决办法]
朝阳
[解决办法]
葫芦岛");
where[9] = new comefrom("吉林", "
[解决办法]
长春
[解决办法]
吉林
[解决办法]
四平
[解决办法]
辽源
[解决办法]
通化
[解决办法]
白山
[解决办法]
松原
[解决办法]
白城
[解决办法]
延边");
where[10] = new comefrom("黑龙江", "
[解决办法]
哈尔滨
[解决办法]
齐齐哈尔
[解决办法]
牡丹江
[解决办法]
佳木斯
[解决办法]
大庆
[解决办法]
绥化
[解决办法]
鹤岗
[解决办法]
鸡西
[解决办法]
黑河
[解决办法]
双鸭山
[解决办法]
伊春
[解决办法]
七台河
[解决办法]
大兴安岭");
where[11] = new comefrom("江苏", "
[解决办法]
南京
[解决办法]
镇江
[解决办法]
苏州
[解决办法]
南通
[解决办法]
扬州
------解决方案--------------------
盐城
[解决办法]
徐州
[解决办法]
连云港
[解决办法]
常州
[解决办法]
无锡
[解决办法]
宿迁
[解决办法]
泰州
[解决办法]
淮安");
where[12] = new comefrom("浙江", "
[解决办法]
杭州
[解决办法]
宁波
[解决办法]
温州
[解决办法]
嘉兴
[解决办法]
湖州
[解决办法]
绍兴
[解决办法]
金华
[解决办法]
衢州
[解决办法]
舟山
[解决办法]
台州
[解决办法]
丽水");
where[13] = new comefrom("安徽", "
[解决办法]
合肥
[解决办法]
芜湖
[解决办法]
蚌埠
[解决办法]
马鞍山
[解决办法]
淮北
[解决办法]
铜陵
[解决办法]
安庆
[解决办法]
黄山
[解决办法]
滁州
[解决办法]
宿州
[解决办法]
池州
[解决办法]
淮南
[解决办法]
巢湖
[解决办法]
阜阳
[解决办法]
六安
[解决办法]
宣城
[解决办法]
亳州");
where[14] = new comefrom("福建", "
------解决方案--------------------
福州
[解决办法]
厦门
[解决办法]
莆田
[解决办法]
三明
[解决办法]
泉州
[解决办法]
漳州
[解决办法]
南平
[解决办法]
龙岩
[解决办法]
宁德");
where[15] = new comefrom("江西", "
[解决办法]
南昌市
[解决办法]
景德镇
[解决办法]
九江
[解决办法]
鹰潭
[解决办法]
萍乡
[解决办法]
新馀
[解决办法]
赣州
[解决办法]
吉安
[解决办法]
宜春
[解决办法]
抚州
[解决办法]
上饶");
where[16] = new comefrom("山东", "
[解决办法]
济南
[解决办法]
青岛
[解决办法]
淄博
[解决办法]
枣庄
[解决办法]
东营
[解决办法]
烟台
[解决办法]
潍坊
[解决办法]
济宁
[解决办法]
泰安
[解决办法]
威海
[解决办法]
日照
[解决办法]
莱芜
[解决办法]
临沂
[解决办法]
德州
[解决办法]
聊城
[解决办法]
滨州
[解决办法]
菏泽");
where[17] = new comefrom("河南", "
[解决办法]
郑州
[解决办法]
开封
[解决办法]
洛阳
[解决办法]
平顶山
[解决办法]
安阳
[解决办法]
鹤壁
[解决办法]
新乡
[解决办法]
焦作
[解决办法]
濮阳
[解决办法]
许昌
[解决办法]
漯河
[解决办法]
三门峡
[解决办法]
南阳
[解决办法]
商丘
[解决办法]
信阳
[解决办法]
周口
[解决办法]
驻马店
[解决办法]
济源");
where[18] = new comefrom("湖北", "
[解决办法]
武汉
[解决办法]
宜昌
[解决办法]
荆州
[解决办法]
襄樊
[解决办法]
黄石
[解决办法]
荆门
[解决办法]
黄冈
[解决办法]
十堰
[解决办法]
恩施
[解决办法]
潜江
[解决办法]
天门
[解决办法]
仙桃
[解决办法]
随州
[解决办法]
咸宁
[解决办法]
孝感
[解决办法]
鄂州");
where[19] = new comefrom("湖南", "
[解决办法]
长沙
[解决办法]
常德
[解决办法]
株洲
[解决办法]
湘潭
[解决办法]
衡阳
[解决办法]
岳阳
[解决办法]
邵阳
[解决办法]
益阳
[解决办法]
娄底
[解决办法]
怀化
[解决办法]
郴州
[解决办法]
永州
[解决办法]
湘西
[解决办法]
张家界");
where[20] = new comefrom("广东", "
[解决办法]
广州
[解决办法]
深圳
[解决办法]
珠海
[解决办法]
汕头
[解决办法]
东莞
[解决办法]
中山
[解决办法]
佛山
[解决办法]
韶关
[解决办法]
江门
[解决办法]
湛江
[解决办法]
茂名
[解决办法]
肇庆
[解决办法]
惠州
[解决办法]
梅州
[解决办法]
汕尾
[解决办法]
河源
[解决办法]
阳江
[解决办法]
清远
[解决办法]
潮州
[解决办法]
揭阳
[解决办法]
云浮");
where[21] = new comefrom("广西", "
[解决办法]
南宁
[解决办法]
柳州
[解决办法]
桂林
[解决办法]
梧州
------解决方案--------------------
北海
[解决办法]
防城港
[解决办法]
钦州
[解决办法]
贵港
[解决办法]
玉林
[解决办法]
南宁地区
[解决办法]
柳州地区
[解决办法]
贺州
[解决办法]
百色
[解决办法]
河池");
where[22] = new comefrom("海南", "
[解决办法]
海口
[解决办法]
三亚");
where[23] = new comefrom("四川", "
[解决办法]
成都
[解决办法]
绵阳
[解决办法]
德阳
[解决办法]
自贡
[解决办法]
攀枝花
[解决办法]
广元
[解决办法]
内江
[解决办法]
乐山
[解决办法]
南充
[解决办法]
宜宾
[解决办法]
广安
[解决办法]
达川
[解决办法]
雅安
[解决办法]
眉山
[解决办法]
甘孜
[解决办法]
凉山
[解决办法]
泸州");
where[24] = new comefrom("贵州", "
[解决办法]
贵阳
[解决办法]
六盘水
[解决办法]
遵义
[解决办法]
安顺
[解决办法]
铜仁
[解决办法]
黔西南
[解决办法]
毕节
------解决方案--------------------
黔东南
[解决办法]
黔南");
where[25] = new comefrom("云南", "
[解决办法]
昆明
[解决办法]
大理
[解决办法]
曲靖
[解决办法]
玉溪
[解决办法]
昭通
[解决办法]
楚雄
[解决办法]
红河
[解决办法]
文山
[解决办法]
思茅
[解决办法]
西双版纳
[解决办法]
保山
[解决办法]
德宏
[解决办法]
丽江
[解决办法]
怒江
[解决办法]
迪庆
[解决办法]
临沧");
where[26] = new comefrom("西藏", "
[解决办法]
拉萨
[解决办法]
日喀则
[解决办法]
山南
[解决办法]
林芝
[解决办法]
昌都
[解决办法]
阿里
[解决办法]
那曲");
where[27] = new comefrom("陕西", "
[解决办法]
西安
[解决办法]
宝鸡
[解决办法]
咸阳
[解决办法]
铜川
[解决办法]
渭南
[解决办法]
延安
[解决办法]
榆林
[解决办法]
汉中
[解决办法]
安康
[解决办法]
商洛");
where[28] = new comefrom("甘肃", "
------解决方案--------------------
兰州
[解决办法]
嘉峪关
[解决办法]
金昌
[解决办法]
白银
[解决办法]
天水
[解决办法]
酒泉
[解决办法]
张掖
[解决办法]
武威
[解决办法]
定西
[解决办法]
陇南
[解决办法]
平凉
[解决办法]
庆阳
[解决办法]
临夏
[解决办法]
甘南");
where[29] = new comefrom("宁夏", "
[解决办法]
银川
[解决办法]
石嘴山
[解决办法]
吴忠
[解决办法]
固原");
where[30] = new comefrom("青海", "
[解决办法]
西宁
[解决办法]
海东
[解决办法]
海南
[解决办法]
海北
[解决办法]
黄南
[解决办法]
玉树
[解决办法]
果洛
[解决办法]
海西");
where[31] = new comefrom("新疆", "
[解决办法]
乌鲁木齐
[解决办法]
石河子
[解决办法]
克拉玛依
[解决办法]
伊犁
[解决办法]
巴音郭勒
[解决办法]
昌吉
[解决办法]
克孜勒苏柯尔克孜
[解决办法]
博尔塔拉
[解决办法]
吐鲁番
[解决办法]
哈密
------解决方案--------------------
喀什
[解决办法]
和田
[解决办法]
阿克苏");
where[32] = new comefrom("香港", "");
where[33] = new comefrom("澳门", "");
where[34] = new comefrom("台湾", "
[解决办法]
台北
[解决办法]
高雄
[解决办法]
台中
[解决办法]
台南
[解决办法]
屏东
[解决办法]
南投
[解决办法]
云林
[解决办法]
新竹
[解决办法]
彰化
[解决办法]
苗栗
[解决办法]
嘉义
[解决办法]
花莲
[解决办法]
桃园
[解决办法]
宜兰
[解决办法]
基隆
[解决办法]
台东
[解决办法]
金门
[解决办法]
马祖
[解决办法]
澎湖");
where[35] = new comefrom("其它", "
[解决办法]
北美洲
[解决办法]
南美洲
[解决办法]
亚洲
[解决办法]
非洲
[解决办法]
欧洲
[解决办法]
大洋洲");
function select() {
with (document.getElementById("province")) {
var loca2 = options[selectedIndex].value;
document.getElementById("txt_MemberProvince").value = loca2;
}
for (i = 0; i < where.length; i++) {
if (where[i].loca == loca2) {
loca3 = (where[i].locacity).split("
[解决办法]
");
for (j = 0; j < loca3.length; j++) {
with (document.getElementById("city")) {
length = loca3.length; options[j].text = loca3[j]; options[j].value = loca3[j]; var loca4 = options[selectedIndex].value;
document.getElementById("txt_MemberCity").value = loca4;
}
}
break;
}
}
}
function init() {
with (document.getElementById("province")) {
length = where.length;
for (k = 0; k < where.length; k++) { options[k].text = where[k].loca; options[k].value = where[k].loca; }
options[selectedIndex].text = where[0].loca; options[selectedIndex].value = where[0].loca;
}
with (document.getElementById("city")) {
loca3 = (where[0].locacity).split("
[解决办法]
");
length = loca3.length;
for (l = 0; l < length; l++) { options[l].text = loca3[l]; options[l].value = loca3[l]; }
options[selectedIndex].text = loca3[0]; options[selectedIndex].value = loca3[0];
}
}
</script>
<body onload="init()" style="margin-top: 2px; margin-left: 5px; background-color: #F0F8FF;
font-size: 12px">
<tr>
<td>
省份:
</td>
<td>
<asp:DropDownList ID="province" runat="server" name="province" onChange="select()"
Width="205px">
</asp:DropDownList>
<asp:TextBox ID="txt_MemberProvince" runat="server" Style="margin-left: 0px; border:none"
Width="40px"></asp:TextBox>
</td>
<td>
城市:
</td>
<td>
<asp:DropDownList ID="city" runat="server" name="city" onChange="select()" Width="205px">
</asp:DropDownList>
<asp:TextBox ID="txt_MemberCity" runat="server" Width="40px" Style="margin-left: 0px; border:none"></asp:TextBox>
</td>
</tr>
省
<asp:DropDownList ID="DropDown_City" runat="server" Width="110px" OnSelectedIndexChanged="DropDown_City_SelectedIndexChanged"
AutoPostBack="true">
</asp:DropDownList>
市
<asp:DropDownList ID="DropDown_Zone" runat="server" Width="110px">
</asp:DropDownList>
区
2、SelectedIndexChanged事件
//加载省
protected void DropDown_Province_SelectedIndexChanged(object sender, EventArgs e)
{
this.DropDown_City.DataSource = ContactAreaNoBLL.GetGroup1List(" AreaGroup1='" + this.DropDown_Province.SelectedValue + "'");
DropDown_City.DataTextField = "AreaGroup2";
DropDown_City.DataValueField = "AreaGroup2";
DropDown_City.DataBind();
this.DropDown_City.Items.Insert(0, new ListItem("---请选择---", ""));
}
//加载市
protected void DropDown_City_SelectedIndexChanged(object sender, EventArgs e)
{
this.DropDown_Zone.DataSource = ContactAreaNoBLL.GetList(" AreaGroup2='" + this.DropDown_City.SelectedValue + "'");
DropDown_Zone.DataTextField = "ContactAreaDesc";
DropDown_Zone.DataValueField = "ContactAreaNo";
DropDown_Zone.DataBind();
this.DropDown_Zone.Items.Insert(0, new ListItem("---请选择---", ""));
}
//加载省份
this.DropDown_Province.DataSource = ContactAreaNoBLL.GetAreList("");
DropDown_Province.DataTextField = "AreaGroup1";
DropDown_Province.DataValueField = "AreaGroup1";
DropDown_Province.DataBind();
[解决办法]
我也做了一个,刚好。
VS里有一个ajax extensions 里面的updatepannel
你把两个dropdwonlist托住放进updatepannel里
再再C#里写
判断省dropdownlist的selectedvalue, 再查询数据库里,读出市的名字
SqlConnection conn = new SqlConnection("Server=.;database=;uid=;password=");
conn.Open();
string sql = "select 市名 from DB ";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "DB");
DropDownList2.DataSource = ds.Tables["DB"].DefaultView;
DropDownList2.DataTextField = "市级名称"; //dropdownlist的Text的字段
DropDownList2.DataValueField = "市级名称";//dropdownlist的Value的字段
DropDownList2.DataBind();
[解决办法]
Refer:
http://www.cnblogs.com/insus/archive/2011/07/04/2097059.html
http://www.cnblogs.com/insus/archive/2012/10/16/2725307.html