级连dropdownlist。
dropdownlist1是在页面加载时完成,写入到了!ispostback里面。
dropdownlist1的selected动作,完成dropdownlist2的绑定。没有在page_load里面留下任何东西。现在奇怪的是,dropdownlist1很正常,可以完成dropdownlist2的绑定。
但dropdownlist2的selected,只有 selectedindex=0和1时,能进入程序段,选2 3 4,完全都不进入selected动作的程序段我的dropdownlist是用的
datasource=dt;
databing();
这样来完成绑定的。这是怎么回事啊

解决方案 »

  1.   

    绑定dropdownlist1
    protected void DDL_bumen_bind()
        {
            string str = "select bumen,id from cp_menulist";
            PMS.Common.DataAccess dataas = new PMS.Common.DataAccess();
            DataTable DT = dataas.CreateDataTable(str);
            DDL_bumen.DataSource = DT;
            DDL_bumen.DataTextField = "bumen";
            DDL_bumen.DataValueField = "id";
            DDL_bumen.DataBind();
            DDL_bumen.Items.Insert(0, new ListItem("请选择...", ""));
            DDL_bumen.SelectedIndex = 0;
        }dropdownlist1的selected动作protected void DDL_bumen_SelectedIndexChanged(object sender, EventArgs e)
        {
            string dw = DDL_bumen.SelectedValue.Trim();
            string str = "select distinct bz,dw from cp_users where dw='" + dw + "'";
            PMS.Common.DataAccess dataas = new PMS.Common.DataAccess();
            DataTable DT = dataas.CreateDataTable(str);
            DDL_bz.DataSource = DT;
            DDL_bz.DataTextField = "bz";
            DDL_bz.DataValueField = "dw";
            DDL_bz.DataBind();
            DDL_bz.Items.Insert(0, new ListItem("请选择...", ""));
            DDL_bz.SelectedIndex = 0;
            DataTable DT1 = creatdt();
            DT1 = myGV.childDT(DT1, "dw='" + dw + "'");
            gridviewbing(DT1);
        }dropdownlist2的动作
    protected void DDL_bz_SelectedIndexChanged(object sender, EventArgs e)
        {
            string dw = DDL_bz.SelectedItem.Value;
            string bz = DDL_bz.SelectedItem.Text;
            DataTable DT = creatdt();
            DT = myGV.childDT(DT, "dw='" + dw + "' and bz='" + bz + "'");
            gridviewbing(DT);
        }
      

  2.   

    绑定的时候你还加 DDL_bz.SelectedIndex = 0;干嘛,都去掉。
      

  3.   

    汗,发现问题出在。。dorpdownlist2绑定时。DDL_bz.DataValueField = "dw";
    这一段上,因为dw会是一样的值。
    那难道说,当value相同的时候,selectedindex,是根据value来判定?这个好象有些说不过去啊?
      

  4.   

    你的DropDownList1的AutoPostBack属性设置为true了没有?
      

  5.   


    那是显然的,现在问题己经找到了,就是DDL_bz.DataValueField = "dw";
    这个dw是一个相同的值,也就是说,绑定出来的树,每一个选项,text是不同的,而value是相同的,就这个原因,造成无法选择2 3 4 项,因为0项的value是"",从1开始的value都是相同的,结果就变成了index只能选0 1,不会出现2 3 4 5 了。这是个很奇怪的问题。我其实是想通过 text和value,分别传一个参数到DDL_bz的selectedindex事件里面去,而这样的话,我就只能从DDL_dw和DDL_bz分别取数了。郁闷的问题。
      

  6.   

    是你的dt是不是都给两个DropDownList 这样会结果都一样的
      

  7.   

    绑定的时候 最好避免text和value重复。
      

  8.   

    还是想不到通过dropdownlist一次传递两个值,其中一个值是重复的方式。我不想用啥viewstate啥session,不知道能不能行得通啊。