我在网上查了一个城市的js二级联动代码,现在可以正常使用,但是如果从数据库读出省份和城市后,如果使二级联动菜单的值对应上?aspx代码
<script language="JavaScript" type="text/javascript">
     //定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组
     var city=[
     ["北京","天津","上海","重庆"],
     ["南京","苏州","南通","常州"],
    ["福州","福安","龙岩","南平"],
     ["广州","潮阳","潮州","澄海"],
     ["兰州","白银","定西","敦煌"]
     ];
 
     function getCity(){
         //获得省份下拉框的对象
         var sltProvince=document.form1.province;
         //获得城市下拉框的对象
         var sltCity=document.form1.city;
        
        //得到对应省份的城市数组
         var provinceCity=city[sltProvince.selectedIndex - 1];        //清空城市下拉框,仅留提示选项
         sltCity.length=1;
 
         //将城市数组中的值填充到城市下拉框中
         for(var i=0;i<provinceCity.length;i++){
             sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);
         }
     }
</script>
<form id="form1" runat="server">
<OPTION VALUE="0" selected>请选择省份
</OPTION>
<OPTION VALUE="直辖市">直辖市
</OPTION>
<OPTION VALUE="江苏省">江苏省
</OPTION>
<OPTION VALUE="福建省">福建省
</OPTION>
<OPTION VALUE="广东省">广东省
</OPTION>
<OPTION VALUE="甘肃省">甘肃省
</OPTION>
</SELECT>
<SELECT NAME="city" id="city" runat="server">
<OPTION VALUE="请选择城市" selected>请选择城市
</OPTION>
</SELECT>
</form>
C#代码
this.province.Value = reader["job_local"].ToString();
this.city.Value = reader["job_area"].ToString();现在的问题是province可以对应数据库的内容,但是city总是显示"请选择城市",该怎样解决?

解决方案 »

  1.   

    你的select控件时服务器控件,触发事件后页面回传重新加载,你的js所作的工作不会显示,要么用ajax读取数据库数据,要么就直接用后台代码写,不用js控制联动
      

  2.   

    我在c#中用了 Page.RegisterStartupScript("ggg", "<script>getCity();</script>");
    现在city下拉单里能显示省所有对应的城市,但是还是不能指向某一个城市,"请选择城市"总被checked.
    应该怎样解决?
      

  3.   

    要指向某一个城市,就要获取该城市的id号,然后在对应省份的所有城市(即你的city下拉框)中循环遍历,有相同id的就让该项checked