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

初学者请教一个问题,怎么关联2个dropdownlist

楼主bxl(bxl)2005-06-03 14:42:57 在 .NET技术 / ASP.NET 提问

我使用2个dropdownlist,第一个控件里放   蔬菜、水果等选项,我想在第一个控件里选择蔬菜后,第二个控件中显示白菜、萝卜等具体蔬菜名,如果在第一个控件里选择水果后,则在第二个里显示一些具体的水果名。请问这怎么实现,请大家给点提示!谢谢 问题点数:10、回复次数:4Top

1 楼net_lover(【孟子E章】)回复于 2005-06-03 14:51:07 得分 3

http://www.google.com/search?hl=zh-CN&q=dropdownlist++%E8%81%94%E5%8A%A8&lr=Top

2 楼renyu732(Sysinfo)回复于 2005-06-03 15:22:46 得分 5

<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);");  
  }  
   
   
   
   
  //以下是VB脚本  
  <SCRIPT   LANGUAGE="vbScript">  
  <!--  
  '以XML求取数据  
  function   XmlPost(obj)  
    dim   svalue    
    svalue   =   obj.value  
    dim   webFileUrl    
    webFileUrl   =   "?brc_id="   +   svalue  
    dim   result  
    set   xmlHttp   =   CreateObject("Microsoft.XMLHTTP")  
    call   xmlHttp.open("POST",   webFileUrl,   false)  
    call   xmlHttp.send("")  
    result   =   xmlHttp.responseText  
   
    set   downlist   =   document.all("DropDownList2")  
   
    if   result   <>   ""   then  
      document.all("DropDownList2").length=0  
      dim   piArray   ,ary1  
      piArray   =   split(result,",")  
      for   i=0   to   piArray.length   -   1  
        ary1   =   split(piArray(i),"|")  
        downlist.length   =   downlist.length   +   1  
        downlist.options(downlist.length-1).text   =   ary1(1)  
        downlist.options(downlist.length-1).value   =   ary1(0)  
      next  
    else  
      alert(result)  
    end   if  
  end   function  
  //-->  
  </SCRIPT>       
  http://www.cnblogs.com/gwazy/archive/2005/05/10/152312.html  
   
  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

3 楼bxl(bxl)回复于 2005-06-14 10:21:09 得分 0

哎,初学呀,还读不懂上边朋友的代码!惭愧惭愧!   有没有简单一点的做法啊     我用的visual   studio   .netTop

4 楼liangf(你Q不如我Q)回复于 2005-06-14 10:36:06 得分 2

如果不刷新实现,主要是前端js代码比较多,google能搜出很多来,也可以参考下面这个js的专门网站:  
   
  http://www.51js.com/forumdisplay.php?fid=1Top

相关问题

  • 怎样将两个DropDownList关联起来
  • 请教如何处理两个有关联的DropDownList的程序??
  • 问一个DropDownList和Label控件关联的问题
  • 请帮忙:两个dropdownlist相互关联问题?
  • 关于两个dropdownlist互相关联的问题,急。
  • 一个对话框和一个类关联后怎么取消这种关联?
  • dropdownlist绑定数据库中两个关联字段的问题!(在线等)
  • 一个多个关联的下拉列表框怎么做?
  • 用C#怎么写两个关联表生成的数据集
  • 这个关联两张表的sql语句该怎么写?

关键词

  • 控件
  • sql
  • brc
  • mytab
  • dropdownlist
  • aqjc
  • mydataset
  • 蔬菜
  • 水果
  • datatable

得分解答快速导航

  • 帖主:bxl
  • net_lover
  • renyu732
  • liangf

相关链接

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

广告也精彩

反馈

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