资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

关于两个dropdownlist之间关联的问题?

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

在第一个dropdownlist1中我的代码:  
  <asp:DropDownList   id="DropDownList2"   runat="server"   Width="216px"   CssClass="input3">  
  <asp:ListItem   Selected="True"></asp:ListItem>  
  <asp:ListItem>1</asp:ListItem>  
  <asp:ListItem>2</asp:ListItem>  
  </asp:DropDownList>  
   
  在第二个dropdownlist2中代码:  
  <asp:DropDownList   id="DropDownList2"   runat="server"   Width="216px"   CssClass="input3">  
  <asp:ListItem   Selected="True"></asp:ListItem>  
  <asp:ListItem>1_1</asp:ListItem>  
  <asp:ListItem>1_2</asp:ListItem>  
  <asp:ListItem>2_1</asp:ListItem>  
  <asp:ListItem>2_2</asp:ListItem>  
  </asp:DropDownList>  
   
  我想实现的是,在dropdownlist1中选择<asp:ListItem>1</asp:ListItem>后,dropdownlist2中就只能选择<asp:ListItem>1_1</asp:ListItem>  
  <asp:ListItem>1_2</asp:ListItem>  
   
  这个应该怎样实现呢?谢谢各位。  
 

网友回答:

发表者:xulovewei

1.DropDownList1的AutoPostBack="True"  
  2.事件不要丢了  
  private   void   DropDownList1_SelectedIndexChanged(object   sender,   System.EventArgs   e)  
  3.在上面的事件里做判断  
  遍历DropDownList2的每一项  
  //找到2中每一项"-"的位置  
  int   ItemIndex=this.DropDownList2.Items[i].Text.Indexof("-",0);  
  if(ItemIndex.Substring(0,ItemIndex)==dropdownlist1)//是ItemIndex还是ItemIndex-1你试试  
  {  
  ...将项保存到数组,最后绑定到dropdownlist2    
  }  
   
  就是这个思路你试试

发表者:yt_net

这个很好实现的,把AutoPostBack="True",然后在DropDownList1_SelectedIndexChanged(object   sender,   System.EventArgs   e)事件中写代码

发表者:WZCNet

如果不考虑性能方面的话,就用服务器端给第一个Dropdownlist添加SelectedIndexChange事件  
 

发表者:menuvb

服务端执行很费资源  
   
  用XML进行关联吧  
   
   
  URL的打不开,只好贴出来了  
   
  XML卷之实战锦囊:选单连动      
   
   
  ---   Sailflying   (   车仔   )   【   2001/01/21   】  
     
   
   
  动机:    
  现在我们做个在IE里应用XML的一个小例子:解决双下拉选单的连动问题。大家最常见的可能就是选取省份后改变城市选项的例子了,那我们就来尝试着用XML来完成吧。    
   
  以前介绍的一些功能我是直接用XML+XSL文件来完成的,大家可能还不是很熟悉它的用法,所以我这次就用HMTL+XML来做,希望能够让大家更清楚的了解--“XML原来可以如此简单!”:)    
   
   
  材料:    
  XML卷之选单连动  
  有2个文件:Citys.xml   和   CitySelect.htm    
   
  作用:    
  选择省份后可以自动显示相对应的城市,这样方便用户,有效的提高数据互动,让自己的页面更加绚丽多彩。      
  效果:    
  选取省份后改变城市选项   :   江西北京福建甘肃广东安徽   福州厦门漳州      
  代码:    
  Citys.xml    
  <?xml   version="1.0"   encoding="gb2312"?>  
  <China>  
      <State   id="1"   name="江西">  
          <City>九江</City>  
          <City>南昌</City>  
          <City>庐山</City>  
          <City>景德镇</City>  
      </State>  
      <State   id="2"   name="北京">  
          <City>北京西</City>  
          <City>居庸关</City>  
          <City>清华园</City>  
          <City>周口店</City>  
      </State>  
      <State   id="3"   name="福建">  
          <City>福州</City>  
          <City>厦门</City>  
          <City>漳州</City>  
      </State>  
      <State   id="4"   name="甘肃">  
          <City>兰州</City>  
          <City>洛门</City>  
          <City>嘉峪关</City>  
      </State>  
      <State   id="5"   name="广东">  
          <City>广州</City>  
          <City>深圳</City>  
          <City>东莞</City>  
          <City>石牌</City>  
      </State>  
      <State   id="6"   name="安徽">  
          <City>合肥</City>  
          <City>黄山</City>  
          <City>九龙岗</City>  
          <City>马鞍山</City>  
      </State>  
  </China>    
   
  CitySelect.htm  
   
  自定义函数:ChooseState    
  (读取XML数据中的省的名称,并增加到SelState的下拉列表中)  
     
  function   ChooseState()  
  {  
      var   source;  
      var   sourceName   =   "Citys.xml";  
      var   source   =   new   ActiveXObject(Microsoft.XMLDOM);       //创建一个MSXML解析器实例  
      source.async   =   false;  
      source.load(sourceName);       //装入XML文档  
      root   =   source.documentElement;       //设置文档元素为根节点元素  
      sortField=root.selectNodes("//@name");       //搜索属性中含有name的所有节点  
      for(var   i=0;i<sortField.length;++i)       //增加省份名称到下拉列表  
      {  
          var   oOption   =   document.createElement(OPTION);  
          oOption.text   =   "   "+sortField[i].text+"   ";  
          oOption.value   =   sortField[i].text;  
            form1.SelState.options.add(oOption);    
      }  
        ChooseCity();  
  }    
   
  自定义函数:ChooseCity    
  (根据当前选定的省名来读取XML数据中的对应城市名称,并增加到SelCity的下拉列表中)    
  function   ChooseCity()  
  {  
      x=form1.SelState.selectedIndex;       //读取省份下拉框的当前选项  
      y=form1.SelState.options[x].value;  
      sortField=root.selectNodes("//State[@name="+y+"]/City");       //搜索name属性值等于  
  参数y的State节点下的所有city节点  
      for(var   i=form1.SelCity.options.length-1;i>=0;--i)       //撤消原来的列表项  
      {  
          form1.SelCity.options.remove(i)  
      }  
      for(var   i=0;i<sortField.length;++i)       //增加城市名称到下拉列表  
      {  
          var   oOption   =   document.createElement(OPTION);  
          oOption.text   =   "   "+sortField[i].text+"   ";  
          oOption.value   =   sortField[i].text;  
          form1.SelCity.options.add(oOption);    
      }  
  }  
     
   
  表单源码    
  <BODY   onLoad="ChooseState()">  
  <FORM   action=""   method="post"   id="form1"   name="form1">  
  <SELECT   name="SelState"   id="SelState"   onchange="ChooseCity()"   >  
  </SELECT>  
  <SELECT   name="SelCity"   id="SelCity"   >  
  </SELECT>  
  </FORM>  
  </BODY>    
   
     
   
 


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved