protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DLbind();
            XLbind();
            SLbind();
            PBbind();
        }
    }
  
//一级类别绑定  
  protected void DLbind()
    {
        myconnection = new SqlConnection(connstr);
        DropDownList1.Items.Clear();//清空下拉菜单
        String sqlstr = "select distinct DL_MC from PD_DL";
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, myconnection);
        DataSet myds = new DataSet();
        myda.Fill(myds);
        DropDownList1.DataSource = myds;
        DropDownList1.DataValueField = "DL_MC";
        DropDownList1.DataBind();
        myconnection.Close();    }
  //二级类别绑定  
    protected void XLbind()
    {
        DropDownList2.Items.Clear();//清空下拉菜单
        myconnection = new SqlConnection(connstr);
        String sqlstr1 = "SELECT distinct XL_MC FROM  PD_XL";
        SqlDataAdapter myda1 = new SqlDataAdapter(sqlstr1, myconnection);
        DataSet myds1 = new DataSet();
        myda1.Fill(myds1);
        DropDownList2.DataSource = myds1;
        DropDownList2.DataValueField = "XL_MC";
        DropDownList2.DataBind();
        myconnection.Close();    }
//三级类别绑定  
    protected void SLbind()
    {
        DropDownList3.Items.Clear();//清空下拉菜单
        myconnection = new SqlConnection(connstr);
        String sqlstr2 = "SELECT distinct SL_MC FROM PD_SL";
        SqlDataAdapter myda2 = new SqlDataAdapter(sqlstr2, myconnection);
        DataSet myds2 = new DataSet();
        myconnection.Open();
        myda2.Fill(myds2);
        DropDownList3.DataSource = myds2;
        DropDownList3.DataValueField = "SL_MC";
        DropDownList3.DataBind();
        myconnection.Close();
    }
   
//DropDownList1_SelectedIndexChanged
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        myconnection = new SqlConnection(connstr);
        String sqlstr3 = "SELECT PD_XL.XL_MC FROM PD_Brand INNER JOIN PD_DL ON dbo.PD_Brand.DL_ID = dbo.PD_DL.DL_ID INNER JOIN PD_XL ON dbo.PD_Brand.XL_ID =  PD_XL.XL_ID CROSS JOIN PD_SL where PD_DL.DL_MC='DropDownList1.SelectedItem.Text'";
        SqlDataAdapter myda3 = new SqlDataAdapter(sqlstr3, myconnection);
        DataSet myds3 = new DataSet();
        myconnection.Open();
        myda3.Fill(myds3);
        DropDownList2.DataSource = myds3;
        DropDownList2.DataValueField = "XL_MC";
        myconnection.Close();
    }
//DropDownList2_SelectedIndexChanged
    protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
    {
        myconnection = new SqlConnection(connstr);
        String sqlstr4 = "SELECT PD_SL.SL_MC FROM PD_Brand INNER JOIN PD_DL ON dbo.PD_Brand.DL_ID = dbo.PD_DL.DL_ID INNER JOIN PD_XL ON dbo.PD_Brand.XL_ID =  PD_XL.XL_ID CROSS JOIN PD_SL where PD_XL.XL_MC='DropDownList2.SelectedItem.Text' and PD_DL.DL_MC='DropDownList1.SelectedItem.Text'";
        SqlDataAdapter myda4 = new SqlDataAdapter(sqlstr4, myconnection);
        DataSet myds4 = new DataSet();
        myda4.Fill(myds4);
        DropDownList3.DataSource = myds4;
        DropDownList3.DataValueField = "SL_MC";
        DropDownList3.DataBind();
        DropDownList2.DataBind();
        myconnection.Close();
    }
//DropDownList3_SelectedIndexChanged
    protected void DropDownList3_SelectedIndexChanged(object sender, EventArgs e)
    {
        myconnection = new SqlConnection(connstr);
        String sqlstr2 = "SELECT PD_Brand.PB_MC FROM PD_Brand INNER JOIN PD_DL ON dbo.PD_Brand.DL_ID = dbo.PD_DL.DL_ID INNER JOIN PD_XL ON dbo.PD_Brand.XL_ID =  PD_XL.XL_ID CROSS JOIN PD_SL where PD_XL.XL_MC='DropDownList2.SelectedItem.Text' and PD_DL.DL_MC='DropDownList1.SelectedItem.Text' and PD_XL.XL_MC='DropDownList2.SelectedItem.Text' and PD_SL.SL_MC='DropDownList3.SelectedItem.Text'";
        SqlDataAdapter myda2 = new SqlDataAdapter(sqlstr2, myconnection);
        DataSet myds2 = new DataSet();
        myconnection.Open();
        myda2.Fill(myds2);
        DropDownList3.DataSource = myds2;
        DropDownList3.DataValueField = "PB_MC";
        DropDownList3.DataBind();
        myconnection.Close();
    }
   出现的问题是不能级联,选一类 ,二类不出现选择,选二类 ,三类不出现选择,如何解决啊,请高手帮忙,在此感谢

解决方案 »

  1.   

    DropDownList3.DataTextField = "PB_MC";
      

  2.   

    断点调试,看看选一类时,DropDownList1_SelectedIndexChanged中DropDownList2的数据源变了没?
      

  3.   

     String sqlstr3 = "SELECT PD_XL.XL_MC FROM PD_Brand INNER JOIN PD_DL ON dbo.PD_Brand.DL_ID = dbo.PD_DL.DL_ID INNER JOIN PD_XL ON dbo.PD_Brand.XL_ID = PD_XL.XL_ID CROSS JOIN PD_SL where PD_DL.DL_MC='"+DropDownList1.SelectedItem.Text+"'";建議樓主不要直接組字符串,改用sqlparameter,這樣不容易受注入攻擊
      

  4.   

    String sqlstr4 = "SELECT PD_SL.SL_MC FROM PD_Brand INNER JOIN PD_DL ON dbo.PD_Brand.DL_ID = dbo.PD_DL.DL_ID INNER JOIN PD_XL ON dbo.PD_Brand.XL_ID = PD_XL.XL_ID CROSS JOIN PD_SL where PD_XL.XL_MC='DropDownList2.SelectedItem.Text' and PD_DL.DL_MC='"+DropDownList1.SelectedValue+"'";
    and PD_SL.SL_MC='"+DropDownList3.SelectedItem.Text+"'";