asp.net下实现非刷新两个下拉框关联

asp.net下实现非刷新两个下拉框关联

在网页中常常出现省份,城市的关联下拉列表处理,下面介绍一下如何用asp.net,vb处理这个问题。
/////////数据添加页面部分代码如下:

<script language="javascript" src="../js/citydata.js"></script>(citydata.js的代码在本文最后)
<asp:dropdownlist id="dlnowAt" runat="server">
<asp:ListItem Value="0">请选择</asp:ListItem>
<asp:ListItem Value="34">a安徽</asp:ListItem>
<asp:ListItem Value="11">b北京</asp:ListItem>
<asp:ListItem Value="50">c重庆</asp:ListItem>
<asp:ListItem Value="35">f福建</asp:ListItem>
<asp:ListItem Value="62">g甘肃</asp:ListItem>
<asp:ListItem Value="44">g广东</asp:ListItem>
<asp:ListItem Value="45">g广西</asp:ListItem>
<asp:ListItem Value="52">g贵州</asp:ListItem>
<asp:ListItem Value="46">h海南</asp:ListItem>
<asp:ListItem Value="13">h河北</asp:ListItem>
<asp:ListItem Value="23">h黑龙江</asp:ListItem>
<asp:ListItem Value="41">h河南</asp:ListItem>
<asp:ListItem Value="42">h湖北</asp:ListItem>
<asp:ListItem Value="43">h湖南</asp:ListItem>
<asp:ListItem Value="32">j江苏</asp:ListItem>
<asp:ListItem Value="36">j江西</asp:ListItem>
<asp:ListItem Value="22">j吉林</asp:ListItem>
<asp:ListItem Value="21">l辽宁</asp:ListItem>
<asp:ListItem Value="64">n宁夏</asp:ListItem>
<asp:ListItem Value="15">n内蒙古</asp:ListItem>
<asp:ListItem Value="63">q青海</asp:ListItem>
<asp:ListItem Value="31">s上海</asp:ListItem>
<asp:ListItem Value="14">s山西</asp:ListItem>
<asp:ListItem Value="37">s山东</asp:ListItem>
<asp:ListItem Value="51">s四川</asp:ListItem>
<asp:ListItem Value="61">s陕西</asp:ListItem>
<asp:ListItem Value="12">t天津</asp:ListItem>
<asp:ListItem Value="54">x西藏</asp:ListItem>
<asp:ListItem Value="65">x新疆</asp:ListItem>
<asp:ListItem Value="53">y云南</asp:ListItem>
<asp:ListItem Value="33">z浙江</asp:ListItem>
<asp:ListItem Value="71">t台湾</asp:ListItem>
<asp:ListItem Value="81">x香港</asp:ListItem>
<asp:ListItem Value="82">a澳门</asp:ListItem>
<asp:ListItem Value="99">q其他</asp:ListItem>
</asp:dropdownlist>
<asp:dropdownlist id="dlNowcity" runat="server">
  <asp:ListItem Value="0">请选择</asp:ListItem>
</asp:dropdownlist>


后台部分

Request("dlnowcity")和Me.dlnowAt.SelectedItem.Text分别获取两个下拉列表框的值


//////////在数据修改页面中可在后台先初始化dlnowAt,代码略

然后在aspx文件中使用下列代码初始化dlnowcity

<script language="JavaScript">

//初始化列表框。
function set_option_data(optionname,myvalue)
{
 for (var i = 0;i < optionname.options.length;i++)
 {
  if (optionname.options[i].value == myvalue)
  {
   optionname.options[i].selected=true;
   break;
  }
 }
}
searchlistcities(document.form1.dlnowAt,document.form1.dlNowcity,'请选择');
       </script>
<%
response.Write("<script language='JavaScript'>")
response.Write("set_option_data(document.form1.dlNowcity,'" & nowcity & "');" & vbcrlf)
'说明:变量nowcity可从数据库中获取值
response.Write("</script>")
%>


附:citydata.js
//////////////////////////////////////////////////////

function searchlistcities(sel1,selectitem,ftext)
{
 var provcode = sel1.options[sel1.selectedIndex].value;
       
 selectitem.options[0].value = 0;
 if (ftext=="不限")selectitem.options[0].value ="不限";
 selectitem.options[0].text = ftext;

 if (provcode == 0)
 {
  selectitem.options.length = 1;
 }
 else
 {
  var citylist = eval("prov" + provcode + ".split(',')");

  selectitem.options.length = citylist.length + 1;
 
  for(var i=1; i<citylist.length+1; i++)
  {
   selectitem.options[i].value = selectitem.options[i].text= citylist[i-1];
   
  }
 }
    return false;
}     

function searchinitCity()
{
 searchlistcities(document.searchform)
}
prov11 = "东城区,西城区,崇文区,宣武区,朝阳区,丰台区,石景山区,海淀区,门头沟区,房山区,通州区,顺义区,昌平区,大兴区,怀柔区,平谷区,密云县,延庆县"
prov12 = "和平区,河东区,河西区,南开区,河北区,红桥区,塘沽区,汉沽区,大港区,东丽区,西青区,津南区,北辰区,武清区,宝坻区,宁河县,静海县,蓟县"
prov13 = "石家庄,唐山,秦皇岛,邯郸,邢台,保定,张家口,承德,沧州,廊坊,衡水"
prov14 = "太原,大同,阳泉,长治,晋城,朔州,晋中,运城,忻州,临汾,吕梁"
prov15 = "呼和浩特,包头,乌海,赤峰,通辽,鄂尔多斯,呼伦贝尔,兴安盟,锡林郭勒盟,乌兰察布盟,巴彦淖尔盟,阿拉善盟"
prov21 = "沈阳,大连,鞍山,抚顺,本溪,丹东,锦州,营口,阜新,辽阳,盘锦,铁岭,朝阳,葫芦岛"
prov22 = "长春,吉林,四平,辽源,通化,白山,松原,白城,延边"
prov23 = "哈尔滨,齐齐哈尔,鸡西,鹤岗,双鸭山,大庆,伊春,佳木斯,七台河,牡丹江,黑河,绥化,大兴安岭"
prov31 = "黄浦区,卢湾区,徐汇区,长宁区,静安区,普陀区,闸北区,虹口区,杨浦区,闵行区,宝山区,嘉定区,浦东新区,金山区,松江区,青浦区,南汇区,奉贤区,崇明县"
prov32 = "南京,无锡,徐州,常州,苏州,南通,连云港,淮安,盐城,扬州,镇江,泰州,宿迁"
prov33 = "杭州,宁波,温州,嘉兴,湖州,绍兴,金华,衢州,舟山,台州,丽水"
prov34 = "合肥,芜湖,蚌埠,淮南,马鞍山,淮北,铜陵,安庆,黄山,滁州,阜阳,宿州,巢湖,六安,亳州,池州,宣城"
prov35 = "福州,厦门,莆田,三明,泉州,漳州,南平,龙岩,宁德"
prov36 = "南昌,景德镇,萍乡,九江,新余,鹰潭,赣州,吉安,宜春,抚州,上饶"
prov37 = "济南,青岛,淄博,枣庄,东营,烟台,潍坊,济宁,泰安,威海,日照,莱芜,临沂,德州,聊城,滨州,荷泽"
prov41 = "郑州,开封,洛阳,平顶山,安阳,鹤壁,新乡,焦作,濮阳,许昌,漯河,三门峡,南阳,商丘,信阳,周口,驻马店"
prov42 = "武汉,黄石,十堰,宜昌,襄樊,鄂州,荆门,孝感,荆州,黄冈,咸宁,随州,恩施土家族自治州"
prov43 = "长沙,株洲,湘潭,衡阳,邵阳,岳阳,常德,张家界,益阳,郴州,永州,怀化,娄底,湘西土家族自治州"
prov44 = "广州,韶关,深圳,珠海,汕头,佛山,江门,湛江,茂名,肇庆,惠州,梅州,汕尾,河源,阳江,清远,东莞,中山,潮州,揭阳,云浮"
prov45 = "南宁,柳州,桂林,梧州,北海,防城港,钦州,贵港,玉林,百色,贺州,河池,南宁地区,柳州地区"
prov46 = "海口,三亚,其他"
prov50 = "万州区,涪陵区,渝中区,大渡口区,江北区,沙坪坝区,九龙坡区,南岸区,北碚区,万盛区,双桥区,渝北区,巴南区,黔江区,长寿区,綦江县,潼南县,铜梁县,大足县,荣昌县,璧山县,梁平县,城口县,丰都县,垫江县,武隆县,忠  县,开  县,云阳县,奉节县,巫山县,巫溪县,石柱土家族自治县,秀山土家族苗族自治县,酉阳土家族苗族自治县,彭水苗族土家族自治县,江津市,合川市,永川市,南川市"
prov51 = "成都,自贡,攀枝花,泸州,德阳,绵阳,广元,遂宁,内江,乐山,南充,眉山,宜宾,广安,达州,雅安,巴中,资阳,阿坝自治州,甘孜自治州,凉山自治州"
prov52 = "贵阳,六盘水,遵义,安顺,铜仁地区,黔西南自治州,毕节地区,黔东南自治州,黔南自治州"
prov53 = "昆明,曲靖,玉溪,保山,昭通,楚雄自治州,红河自治州,文山自治州,思茅地区,西双版纳自治州,大理自治州,德宏自治州,丽江地区,怒江自治州,迪庆自治州,临沧地区"
prov54 = "拉萨,昌都地区,山南地区,日喀则地区,那曲地区,阿里地区,林芝地区"
prov61 = "西安,铜川,宝鸡,咸阳,渭南,延安,汉中,榆林,安康,商洛"
prov62 = "兰州,嘉峪关,金昌,白银,天水,武威,张掖,平凉,酒泉,庆阳,定西地区,陇南地区,临夏自治州,甘南自治州"
prov63 = "西宁,海东地区,海北自治州,黄南自治州,海南自治州,果洛自治州,玉树自治州,海西蒙古族自治州"
prov64 = "银川,石嘴山,吴忠,固原"
prov65 = "乌鲁木齐,克拉玛依,吐鲁番地区,哈密地区,昌吉回族自治州,博尔塔拉自治州,巴音郭楞自治州,阿克苏地区,克孜勒苏柯尔克孜自治州,喀什地区,和田地区,伊犁自治州,塔城地区,阿勒泰地区"
prov71 = "台北市,台北县,基隆市,宜兰县,桃园县,新竹市,新竹县,苗栗县,台中市,台中县,南投县,彰化县,云林县,嘉义市,嘉义县,台南市,台南县,高雄市,高雄县,屏东县,花莲县,台东县,澎湖县,金门县,连江县"
prov81 = "香港"
prov82 = "澳门"
prov99 = "其它"

 

          

posted on 2005-06-08 18:54  niddle  阅读(1610)  评论(0)    收藏  举报

导航