两个DropDownList之间如何建立控制的先后关系?(比如先选省份,后才能选城市)  如果一个页面里有两个DropDownList ,其中先选择一个ddlCategory的值,然后另一个dropdownlist2中的内容会随着前一个的内容的变化而发生相应的变化,就比如第一个DropDownList 控制的是省份,而另一个DropDownList2 控制的是哪个城市,比如选择的是江苏省,那么第二个DropDownList2 中将会跳出的是江苏省的所有城市列表. 那么现在问题是 DropDownList2 绑定了所有的字段了 不按分类来显示了.
请问DropDownList2  怎么得到 ddlCategory 选中的ID号 private void getCategory()//绑定类别下拉列表
    {        conn.Open();
        string sql = "select * from City";
        SqlDataAdapter dr = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        dr.Fill(ds);        ddlCategory.DataSource = ds;
        ddlCategory.DataTextField = "City";
        ddlCategory.DataValueField = "Cid";
        ddlCategory.DataBind();
        conn.Close();
    }
   
    protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
    {
        conn.Open();
       
        string sql = "select * from Citys where Cid =  ????  ";
        SqlDataAdapter dr = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        dr.Fill(ds);
        DropDownList2.DataSource = ds;
        DropDownList2.DataTextField = "City";
        DropDownList2.DataValueField = "Cityid";
        DropDownList2.DataBind();
        conn.Close();
    }

解决方案 »

  1.   

    把ddlCategory获取数据的方式改成一个函数,然后给这个函数传第一个dropdownlist中选中的ID的值
    void BindCategory(string parentId)
    {
            conn.Open(); 
            
            string sql = "select * from Citys where Cid = " + parentId; 
            SqlDataAdapter dr = new SqlDataAdapter(sql, conn); 
            DataSet ds = new DataSet(); 
            dr.Fill(ds); 
            DropDownList2.DataSource = ds; 
            DropDownList2.DataTextField = "City"; 
            DropDownList2.DataValueField = "Cityid"; 
            DropDownList2.DataBind(); 
            conn.Close(); }
     protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e) 
        { 
    BindCategory(ddlCategory.SelectedValue);           }
      

  2.   

    参考:http://download.csdn.net/source/331627
      

  3.   

    就是DropDownList 的级联问题··用第一个列表的 OnSelectedIndexChanged 或者 OnTextChanged 事件·动态绑定第二个的列表内容 根据SelectedValue 获得第一个列表的选中ID
      

  4.   

    事件啊,就是第一个省下拉框的 OnSelectedIndexChanged 或者 OnTextChanged,反正就是内容改变的时候激发的事件,在这个事件当中写代码,根据最新的省内容查找省的市内容,然后把这些内容填充市下拉框 
      

  5.   

    第一个ddl给aotopostback属性给改成true,然后在他的selectedindex事件里给绑定