网上搜了一下,方法比较复杂,我想应该有更简便的方法。
我在页面上添加了两个Dropdownlist和一个listbox:
Dropdownlist1
Dropdownlist2
listbox1
以上三个控件同时连接到数据库中一个表的一个字段上,由于该字段里面有很多项,选择起来很麻烦,
所以设了3个控件,进行关联。
字段里面的数据格式如下:中国江苏苏州
中国江苏盐城
中国浙江宁波
中国广东深圳
....以上只是举个例子。
然后
Dropdownlist1连接SQL的查询语句是:select left(字段,2) as 国家 from table
Dropdownlist2连接SQL的查询语句是:select left(字段,4) as 国家城市 from table
listbox1连接SQL的查询语句是:select 字段 from table这样,页面启动时Dropdownlist1中有可选项 "中国"等
如果Dropdownlist1选择了"中国"则Dropdownlist2中有可选项 "中国江苏" "中国浙江"等
如果Dropdownlist2选择了"中国江苏"则listbox1中有可选项 "中国江苏苏州" "中国江苏盐城"等问题:
改变Dropdownlist1则Dropdownlist2会跟着变,但是listbox1的选项不会跟着变,只有改变了Dropdownlist2的选择则listbox1才会跟着变。
如何才能改变Dropdownlist1的选项,Dropdownlist2和listbox1都会跟着变?

解决方案 »

  1.   

     
           DropDownList1.DataSource =  数据源 (select * from  tab )
           DropDownList1.DataTextField = “数据中的字段”      // 显示的
            DropDownList1.DataValueField=“ 数据中的字段” // 主要是绑定 ID 之类的   用来获取
            DropDownList1.DataBind();
    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)  //当DropDownList1 数据改变时
        {
           ID = DropDownList1.SelectedValue
           DropDownList2.DataSource =  数据源 (select * from  tab where tabid = 'Id')
            DropDownList2.DataTextField = “数据中的字段”      // 显示的
            DropDownList2.DataValueField=“ 数据中的字段” // 主要是绑定 ID 之类的   用来获取
            DropDownList2.DataBind();
        }原理就是这样了,我没试过,写起太麻烦了,你改下就好了,我以前用过
      

  2.   

    收到楼上的启发,在DropDownList2的DataBound事件中加上listbox1.DataBind()就行了,
    原来这么简单。
    网上那些这么复杂的方法可以见鬼去了