http://expert.csdn.net/Expert/topic/3047/3047271.xml?temp=.4536096

解决方案 »

  1.   

    应该在客户端的<body onload="load()">里调
      

  2.   

    在body onload中调用正确,但第二个问题依旧:保持不了数据,按提交时无法将原来的值赋回去!代码绝对正确!page_load:Page.RegisterStartupScript("", "<script language='JavaScript'>setup();</script>")该setup在页面内,但其中调用了一个在js内的change()。function setup()
    {
    start();
    for(i=0;i<s.length-1;i++)
    document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
    change(0);
    }页面内定义了二个变量:var s=['s1','s2','s3'];
    var opt0 = ['省份','地级市','市、县级市、区'];
    js内又定义了一个变量,    (不知这儿是不是有问题?)function Dsy() {this.Items = {};}var dsy = new Dsy(); Dsy.prototype.add = function(id,iArray) {
    this.Items[id] = iArray
    } Dsy.prototype.Exists = function(id) {
    if(typeof(this.Items[id]) == "undefined") return false;
    return true; 
    }
    function change(v){ var str="0"; for(i=0;i<v;i++){ str+=("_"+(document.getElementById(s[i]).selectedIndex-1));}; var ss=document.getElementById(s[v]); with(ss){
    length = 0;
    options[0]=new Option(opt0[v],opt0[v]);
    if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v)
    {
    if(dsy.Exists(str)){
    ar = dsy.Items[str];
    for(i=0;i<ar.length;i++)options[length]=new Option(ar[i],ar[i]);
    if(v)options[1].selected = true;
    }
    }
    if(++v<s.length){change(v);}
    }
    }
    dsy.add("0",["安徽省","北京市","福建省","甘肃省","广东省","广西壮族自治区","贵州省","海南省","河北省","河南省","黑龙江省","湖北省","湖南省","吉林省","江苏省以下是添加的地区县等数组
    aspx页面内只有三个ID为s1,s2,s3的select控件,没有赋值
      

  3.   

    上面语句中有错,已改为:function setup()
    {
    start();  ----此行已删除 for(i=0;i<s.length-1;i++)
    document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
    change(0);
    }
      

  4.   

    .js中有中文,把web.config中的utf-8改成gb2312