CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

各位大侠进来看一下,关于省市连动问题,解决高分相赠!!!

楼主sunnystar365(一个人的天空)2005-06-02 17:43:50 在 .NET技术 / ASP.NET 提问

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

1 楼sunnystar365(一个人的天空)回复于 2005-06-02 17:50:20 得分 0

还有就是页面不能刷新,谢谢!!!Top

2 楼sunnystar365(一个人的天空)回复于 2005-06-03 08:00:21 得分 0

为什么没有人帮忙啊,急啊!!Top

3 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-06-03 08:02:41 得分 20

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

4 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-03 08:24:57 得分 25

这是我写的一个无刷新联动示例程序,代码是完整的.你可自己尝试一下.  
  以下为页面代码:  
   
  <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);");  
  }  
   
   
  Top

5 楼sunnystar365(一个人的天空)回复于 2005-06-03 09:49:25 得分 0

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

6 楼ye_zi(行到水穷处·坐看云起时)回复于 2005-06-03 10:04:23 得分 3

MARKTop

7 楼sunnystar365(一个人的天空)回复于 2005-06-03 11:56:15 得分 0

各位大哥,再帮帮忙啊Top

8 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-06-03 12:00:05 得分 0

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

9 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-03 13:54:14 得分 0

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

10 楼OSCAR_NJU(死刑犯)回复于 2005-06-03 14:29:02 得分 3

想问一下各位大牛,为什么要通过服务器端来实现呢,用客户端js不是很好吗?Top

11 楼renyu732(Sysinfo)回复于 2005-06-03 15:27:10 得分 5

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  
   
   
  Top

12 楼sunnystar365(一个人的天空)回复于 2005-06-03 16:55:34 得分 0

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

13 楼sunnystar365(一个人的天空)回复于 2005-06-03 16:56:57 得分 0

十分感谢进来看我帖的大侠门,如果问题解决之后,一定再开贴送分Top

14 楼goody9807(http://goody9807.cnblogs.com)回复于 2005-06-03 17:29:33 得分 14

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

15 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-06-03 17:30:10 得分 0

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

16 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-03 20:35:36 得分 0

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

17 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2005-06-03 22:07:46 得分 0

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

18 楼zeusvenus()回复于 2005-06-03 22:27:16 得分 0

帮兄弟顶一下!Top

19 楼Cry_Out(东北)回复于 2005-06-03 22:28:05 得分 0

markTop

20 楼sp1234(asp.net不是一个语言,是一个操作系统)回复于 2005-06-03 22:47:56 得分 0

看起来丢数据是那个什么梅花与控件的问题。你把那个控件删掉,再测试自己的代码!Top

21 楼sunnystar365(一个人的天空)回复于 2005-06-04 09:37:26 得分 0

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

22 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-06-04 09:59:36 得分 0

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

23 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-06-05 09:24:00 得分 0

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

24 楼sunnystar365(一个人的天空)回复于 2005-06-06 08:16:10 得分 0

谢谢各位大哥的帮助,说过完后开帖送分,请各位大哥接分,题目为感谢Top

25 楼cx12cn(攻台保钓收南沙!!)回复于 2005-06-06 10:08:17 得分 0

markTop

相关问题

  • 各位帮忙看一下!
  • 各位帮忙看一下!
  • 各位帮看一下?
  • 各位帮忙看一下
  • 奇怪,各位请看一下
  • 各位兄弟帮忙看一下
  • 各位,請幫忙看一下!?
  • 各位帮我看一下,小问题。
  • 各位老大,帮忙看一下。
  • 各位win2000安装高手看一下$$$

关键词

  • 代码
  • 客户
  • sql
  • brc
  • mytab
  • dropdownlist
  • aqjc
  • mydataset
  • 值
  • 客户端

得分解答快速导航

  • 帖主:sunnystar365
  • boytomato
  • hchxxzx
  • ye_zi
  • OSCAR_NJU
  • renyu732
  • goody9807

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo