我有2个dropdownlist,我想实现:比如第一个dropdownlist选择A,则第二个自动加载a,b,c,d,e在里面;第一个dropdownlist选择B,则第二个自动加载f,g,h,i.
请问如何实现,
请给出代码或Demo
有文章能解决也给分!分只给正确的人!!

解决方案 »

  1.   

    看看下面的这个例子..<html>
    <head>
    </head>
    <body>
    <script language="JavaScript">
    <!--
    var subcat = new Array();
    subcat[0] = new Array('10','1','=1')
    subcat[1] = new Array('10','2','=2')
    subcat[2] = new Array('10','3','=3')
    subcat[3] = new Array('10','4','=4')
    subcat[4] = new Array('10','5','=5')
    subcat[5] = new Array('10','6','=6')
    subcat[6] = new Array('10','7','=7')
    subcat[7] = new Array('10','8','=8')
    subcat[8] = new Array('10','9','=9')
    subcat[9] = new Array('10','10','=10')
    subcat[10] = new Array('20','11','=11')
    subcat[11] = new Array('20','12','=12')
    subcat[12] = new Array('20','13','=13')
    subcat[13] = new Array('20','14','=14')
    subcat[14] = new Array('20','15','=15')
    subcat[15] = new Array('20','16','=16')
    subcat[16] = new Array('20','17','=17')
    subcat[17] = new Array('20','18','=18')
    subcat[18] = new Array('20','19','=19')
    subcat[19] = new Array('20','20','=20')
    function changeselect1(locationid)
    {
            document.form1.s2.length = 0;                              //初始化下拉列表 清空下拉数据
            document.form1.s2.options[0] = new Option('==请选择==',''); //给第一个值
            for (i=0; i<subcat.length; i++)                            //legth=20
            {
                    if (subcat[i][0] == locationid)                    //[0] [1] 第一列 第二列 
                    {document.form1.s2.options[document.form1.s2.length] = new Option(subcat[i][1], subcat[i][2]);}                                    //建立option
        //第一次 length=1 因为有==请选择==
        //i=9时 length= 10 值有11个 因为从0数起 subcat[i][0] == locationid屏蔽了再写
            }
    }
    //-->
    </script><form name="form1">
    二级联动:<select name="s1" onChange="changeselect1(this.value)">
    <option>==请选择==</option>
    <option value="10">1-10</option>
    <option value="20">11-20</option>
    </select><select name="s2" onChange="alert(this.value)"> 
    <option>==请选择==</option>
    </select></form>
      

  2.   

    你主要是把第一个dropdownlist的AutoPostBack设为True,然后再根据选择的内容再在第二个列表框中加入。DDLB是第一个列表框,DDLE是第二个列表框。
    private void DDLB_SelectedIndexChanged(object sender, System.EventArgs e)
    {
      this.DDLE.Items.Clear();
      if(this.DDLB.SelectedItem.Text =="男")
        {
          this.DDLE.Items.Add("a"); 
          this.DDLE.Items.Add("b"); 
          this.DDLE.Items.Add("c"); 
          this.DDLE.Items.Add("d"); 
          this.DDLE.Items.Add("e"); 
        }
      else
        {
    this.DDLE.Items.Add("f"); 
    this.DDLE.Items.Add("g"); 
    this.DDLE.Items.Add("h"); 
    this.DDLE.Items.Add("i"); 
         }
    }
      

  3.   

    private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    string s = this.DropDownList1.SelectedItem.Value; string[] L1 = {"a","b"};
    string[] L2 = {"c","d"}; this.DropDownList2.Items.Clear();
    switch(s)
    {
    case "A":
    foreach(string i in L1)
    {
    this.DropDownList2.Items.Add( i );
    }
    break;
    case "B":
    foreach(string i in L2)
    {
    this.DropDownList2.Items.Add( i );
    }
    break;
    default:
    break;
    }
    }
      

  4.   

    private void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e) {
    if(DropDownList2.SelectedValue == "A") {
    DropDownList1.Items.Add("a");
    DropDownList1.Items.Add("b");
    }
    }
      

  5.   

    http://blog.csdn.net/lr2651/archive/2005/07/06/415138.aspx
    无刷新的
      

  6.   

    为第二个dropdownlist2绑定数据时将第一个dropdownlist1.selectedvalue作为一个查询条件就可以了.
      

  7.   

    对了,先将DropDownList1的autopostback属性设置为true.上面的动作在DropDownList1_SelectedIndexChanged中作.
      

  8.   

    private void mydown1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    svalue=mydown1.SelectedValue.ToString();
    DownBind2();
    }
    private void mydown2_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    svalue=mydown2.SelectedValue.ToString();
    DownBind3();
    }
    private void DownBind1()
    {
    //显示所有的主分类
    string sql = "select id,parentid,context from tree_Asset where id>0 and id<100 order by parentid asc ";
    DataTable mytab = this.Get_Dt(sql); //绑定第一个下拉框
    this.mydown1.DataSource = mytab;
    this.mydown1.DataValueField = "id";
    this.mydown1.DataTextField = "context";
    this.mydown1.DataBind(); //添加一个"请选择"行
    this.mydown1.Items.Insert(0,new ListItem("请选择","")); //为此下拉框添加一个默认选择项(此处默认为sortid = 1
    //做选项时,如果你添加的选定项而此控件中却没有此项,即会出错
    //如:this.mydown1.SelectedValue = "1";
    //所以此处以如下方式进行选定
    ListItem myItem = this.mydown1.Items.FindByValue("1");
    if(myItem != null)
    {
    myItem.Selected = true;
    } //为此下拉框添加选择事件,第一个参数是自己,第二个参数为要填充的下拉框的名称 

    } /// <summary>
    /// 绑定第二个下拉框
    /// </summary>
    private void DownBind2()
    {
    //显示所有的主分类
    try
    {
    int svalue1=Convert.ToInt32(svalue);
    string sql = "select id,parentid,context from tree_Asset where id>99 and id<1000 and parentid="+svalue1+" order by parentid asc";
    DataTable mytab = this.Get_Dt(sql); //绑定第一个下拉框
    this.mydown2.DataSource = mytab;
    this.mydown2.DataValueField = "id";
    this.mydown2.DataTextField = "context";
    this.mydown2.DataBind(); //添加一个"请选择"行
    this.mydown2.Items.Insert(0,new ListItem("请选择",""));
    }
    catch{}
    }
    /// <summary>
    /// 绑定第三个下拉框
    /// </summary>
    private void DownBind3()
    {
    try
    {
    //显示所有的主分类
    int svalue2=Convert.ToInt32(svalue);
    string sql = "select id,parentid,context from tree_Asset where id>99999 and id<1000000 and parentid="+svalue2+" order by parentid asc";
    DataTable mytab = this.Get_Dt(sql); //绑定第一个下拉框
    this.mydown3.DataSource = mytab;
    this.mydown3.DataValueField = "id";
    this.mydown3.DataTextField = "context";
    this.mydown3.DataBind(); //添加一个"请选择"行
    this.mydown3.Items.Insert(0,new ListItem("请选择",""));
               
    }
    catch{}
    }