我看过一些贴子,我用起来的时候有一些问题
1。为什么第一次选择省的时候,在代码response.end()的时候会停留一下(2-3秒),然后跳转的错误处理,错误为 线程正在停止
2。因为我要用到梅花雨控件,所以我把webconfig里的 
<globalization 
            requestEncoding="gb2312" 
            responseEncoding="gb2312" 
   />
把原来的utf-8改为了gb2312,但是连动就不会执行(好象一定要utf-8),这是为什么?
3。我在页面上放了一个button,在事件中想得到选择的省和市的编号(用了DataTextField和DataValueField),可以得到省对应的编号,但是市的编号为空,之后市(ddlCity)控件里面也为空了,这是为什么?怎么样可以得到市的值啊?如果哪为大侠有做好的例子,请发给我谢谢,不要把代码贴进来(因为我试过有些帖里面的代码,总归些问题)    邮箱:[email protected]
解决问题后一定高分相赠,再次万分感谢!!

解决方案 »

  1.   

    http://www.cnblogs.com/gwazy/archive/2005/05/10/152312.html用webservice 实现的无刷新连动....
      

  2.   

    这是我写的一个无刷新联动示例程序,代码是完整的.你可自己尝试一下.
    以下为页面代码:<form id="Form1" method="post" runat="server">
    <asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
    <asp:DropDownList id="DropDownList2" runat="server"></asp:DropDownList>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    //以XML求取数据
    function XmlPost(obj)
    {
      var svalue = obj.value;
      var webFileUrl = "?brc_id=" + svalue;
      var result = "";
      var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
      xmlHttp.open("POST", webFileUrl, false);
      xmlHttp.send("");
      result = xmlHttp.responseText;
      
      if(result != "")
      {
        document.all("DropDownList2").length=0;
        var piArray = result.split(",");
        for(var i=0;i<piArray.length;i++)
        {
          var ary1 = piArray[i].toString().split("|");
          //alert(ary1[0].toString());
          document.all("DropDownList2").options.add(new Option(ary1[1].toString(),ary1[0].toString()));
        }
      }
      else
      {
        alert(result);
      }
    }
    //-->
    </SCRIPT>    
    </form>以下为后台代码:private System.Data.OleDb.OleDbConnection conn;private DataTable get_dt(string sql)
    {
      string connstr = "Provider=MSDAORA.1;Password=aqjc;User ID=aqjc;Data Source=aqjc";
      this.conn = new OleDbConnection(connstr);
      this.conn.Open();
      OleDbCommand myOleDbCommand = new OleDbCommand(sql,this.conn);
      OleDbDataAdapter myData = new OleDbDataAdapter(myOleDbCommand);  DataSet myDataset = new DataSet();
      try
      {
        myData.Fill(myDataset);
      }
      catch(Exception ex)
      {
        throw ex;
      }  this.conn.Close();
      return myDataset.Tables[0];  
    }private void Page_Load(object sender, System.EventArgs e)
    {
      string brc_id = this.Request.QueryString["brc_id"];
      if(brc_id + "a" != "a")
      {
        this.down2_bind(brc_id);
      }  if(!this.IsPostBack)
      {
        this.down1_bind();
      }
    }/// <summary>
    /// 返回第2个下拉框需要的值给xmlhttp
    /// </summary>
    /// <param name="brc_id"></param>
    private void down2_bind(string brc_id)
    {
      string mystr = "";
      string sql = "select brc_id,brc_name from asm_branch where brc_parentid = '" + brc_id + "'";
      DataTable mytab = this.get_dt(sql);  if(mytab.Rows.Count != 0)
      {
        for(int i=0;i<mytab.Rows.Count;i++)
        {
          mystr += "," + mytab.Rows[i][0].ToString() + "|" + mytab.Rows[i][1].ToString();
        }
        mystr = mystr.Substring(1);
      }
      this.Response.Write(mystr);
      this.Response.End();
    }/// <summary>
    /// 绑定第一个下拉框
    /// </summary>
    private void down1_bind()
    {
      string sql = "select brc_id,brc_name from asm_branch where brc_level = '1'";
      DataTable mytab = this.get_dt(sql);
      this.DropDownList1.DataSource = mytab;
      this.DropDownList1.DataValueField = "brc_id";
      this.DropDownList1.DataTextField = "brc_name";
      this.DropDownList1.DataBind();
      this.DropDownList1.Attributes.Add("onchange","XmlPost(this);");
    }
      

  3.   

    To:hchxxzx(NET?摸到一点门槛)
    我想问一下,如何通过button事件得到dropdownlist2的值所对应的编号呢
      

  4.   

    你看我那个也没,你改改连接字符串...用的是  Northwind
    就是可以直接运行的.....
      

  5.   

    我想问一下,如何通过button事件得到dropdownlist2的值所对应的编号呢
    -------
    你是想在客户端还是服务端呢?
    客户端:
    document.all("dropdownlist2").options[document.all("dropdownlist2").selectedIndex].text;
    服务端:
    this.dropdownlist2.SelectedItem.Text;
      

  6.   

    function Do_Link_Change(ChangeObj,n,jsVal,jsShow)
     {
         if (n<0) return ;
         var e = eval("document.all."+ChangeObj);
         for (var i=e.options.length; i>-1; i--)  
                   e.remove(i);
         var show = eval(jsShow+"["+ n+"]"); //得到数组名
         var val=eval(jsVal+"["+ n+"]");
         if (val.length<1) return;
           for (var i=0; i<val.length; i++)
                e.options.add(new Option(show[i], val[i]));  
    }
    然后你必须在客户端写对应的js变量,例如
     var area_show = new Array();
             var area_value = new Array();
             var point_show = new Array();
             var point_value = new Array();
    area_show[0]='广东';
      area_value[0]=510000; 
      point_show[0]=new Array();
      point_value[0]=new Array(); 
      area_show[1]='广州';
      area_value[1]=510100;
      point_show[1]=new Array();
      point_value[1]=new Array(); 
      point_show[1][0]='天河';
      point_value[1][0]=1;
      point_show[1][1]='河南';
      point_value[1][1]=1;
      point_show[1][2]='火车站';
      point_value[1][2]=3;
      area_show[2]='深圳';
      area_value[2]=510200; 
      point_show[2]=new Array();
      point_value[2]=new Array(); 
      point_show[2][0]='南山';
      point_value[2][0]=1;
      point_show[2][1]='龙岗';
      point_value[2][1]=1;
      point_show[2][2]='盐田';
      point_value[2][2]=3;然后再第一个dropdownlist里面写 onchange="Do_Link_Change('npoint',this.selectedIndex,'point_value','point_show')"  
    "npoint"是第二个dropdownlist的id
      

  7.   

    To: hchxxzx(NET?摸到一点门槛) 大哥:
    我是想在服务器端得到,但是只要页面一刷新,DropDownList2的值就为空了,所以你的那句话是错误的,不能那样取,不知道你有没有办法解决呢?用SelectedItem.Text可以得到对应的编号吗?(假如我的dropdowlist2显示的是北京,可以把对应北京的编号1取出来吗?如果是直接数据库绑定的,可以用DataValueField来得到)To:boytomato(深爱一人叫颖的女孩!) 大哥:
    你的方法我也试了,可以运行起来没有反应,不知道大哥你有没有例子,发给我看一下好吗,还有就是如果我在页面上加一个button,会显示缺少runat=server,不知道你是不是特意没有写啊(所以你的代码我暂时还不能用,因为我一定要用到服务器端控件的,要把数据保存到数据库中的),不知道大哥你能不能修改一下啊
      

  8.   

    http://www.cnblogs.com/goody9807/archive/2005/04/25/144742.html
      

  9.   

    不知道你是不是特意没有写啊???我要是不想让别人知道,我倒不往上写了.... 这是原列子...http://www.cnblogs.com/Files/gwazy/WebService.rar
    webform2.aspx是那个连动.....改一下连接...... 
      

  10.   

    我是想在服务器端得到,但是只要页面一刷新,DropDownList2的值就为空了
    -------
    那是你加载数据有问题,你根据我的那个例子,去实际试一下.
      

  11.   

    2。因为我要用到梅花雨控件,所以我把webconfig里的
    <globalization
    requestEncoding="gb2312"
    responseEncoding="gb2312" =============编码问题。不一定是utf-8 但是.aspx .js 等文件的格式要一致,要么都是utf-8的要么都是gb2312的。???????????????3。我在页面上放了一个button,在事件中想得到选择的省和市的编号(用了DataTextField和DataValueField),可以得到省对应的编号,但是市的编号为空,之后市(ddlCity)控件里面也为空了,这是为什么?怎么样可以得到市的值啊?=======================用js脚本填充的下拉列表框后台是不认得牐就是说虽然你用js的方式填充了“市”页面上可以看到效果但是asp.net是不承认的。解决方法就是用一个隐藏的文本框,或是隐藏域来记录市的信息。
      

  12.   

    To jyk(喜欢编程。和气生财。共同提高。共同进步) 
    我看了梅花雨控件的代码,可以找不到关于编码的设置,那怎么样才能把.aspx,.js文件的编码设置为一致呢
      

  13.   

    js 文件  
    用记事本打开,然后存时选择保存类型为
    Unicode  
      

  14.   

    因为网页用的是utf-8编码,将此js文件存为utf-8编码文件即可不好意思不是 Unicode  你改成 utf-8