级连dropdownlist。
dropdownlist1是在页面加载时完成,写入到了!ispostback里面。
dropdownlist1的selected动作,完成dropdownlist2的绑定。没有在page_load里面留下任何东西。现在奇怪的是,dropdownlist1很正常,可以完成dropdownlist2的绑定。
但dropdownlist2的selected,只有 selectedindex=0和1时,能进入程序段,选2 3 4,完全都不进入selected动作的程序段我的dropdownlist是用的
datasource=dt;
databing();
这样来完成绑定的。这是怎么回事啊
dropdownlist1是在页面加载时完成,写入到了!ispostback里面。
dropdownlist1的selected动作,完成dropdownlist2的绑定。没有在page_load里面留下任何东西。现在奇怪的是,dropdownlist1很正常,可以完成dropdownlist2的绑定。
但dropdownlist2的selected,只有 selectedindex=0和1时,能进入程序段,选2 3 4,完全都不进入selected动作的程序段我的dropdownlist是用的
datasource=dt;
databing();
这样来完成绑定的。这是怎么回事啊
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);
}
这一段上,因为dw会是一样的值。
那难道说,当value相同的时候,selectedindex,是根据value来判定?这个好象有些说不过去啊?
那是显然的,现在问题己经找到了,就是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分别取数了。郁闷的问题。