前台是asp.NET 后台语言室c#前台有两个dropdownlist 第一个dropdownlist 有几个值 比如 中国 巴基斯坦 俄罗斯 巴西
第二个dropdownlist 的值 是根据 第一个dropdownlist  选中的值 出来的。
如果你
第一个dropdownlist 选择 的是中国  那么第二个dropdownlist 出来的值 就是 北京 上海 天津 重庆 等第一个dropdownlist 如果你选择的是俄罗斯 那么第二个dropdownlist 出来的值 就是莫斯科 圣彼得堡 等
以此类推。。这个 该怎么实现。这两个
第一个dropdownlist 的值都是在数据库 查出来的。
我现在做了。第一个不用说 直接取 。第二个 是根据第一个选中的 去数据库查 也出来了。
只是 在一 别的国家  第二个没有连动。  我把第一个dropdwonlist的AutoPostBack="True" 他每次刷新都回到默认的状态了。
 希望能说具体一点 谢谢

解决方案 »

  1.   

    在Page_Load里面加入
    if(!IsPostBack)
    {
        绑定你的第一个DropDownList的值
    }然后再在DropDownList1_SelectIndexChanged()里面加入刷第二个DropDownList的代码
      

  2.   

    绑定好第一个dropdownlist后在其SelectIndexChanged()里写绑定第二个dropdownlist的程序。
      

  3.   

    两种办法,
    一种:js代码包含所有国家 城市的数据,然后编写第一个dropdownlist的元素选择变化事件,显示相对应的第二个dropdownlist的数据。
    二种:利用ajax,编写第一个dropdownlist的元素选择变化事件,无刷新的动态读取数据库里面的相对应的城市信息,建议用jquery。
      

  4.   

    既然值都固定了,就不用每次都去查了。
    用Ajax做的话效果会比较好
      

  5.   

    1. 在第一个dropdownlist的SelectIndexChanged事件中
       指定第二个dropdownlist的数据源 
       例子:
                //根据省找到市
            protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (this.ddlProvince.SelectedIndex == 0)
                {            }
                else
                {
                    this.ddlCity.Items.Clear();
                    
                    int ProvinceId = Convert.ToInt32(this.ddlProvince.SelectedValue.ToString());
                    Province p = ProvinceUtility.GetById(ProvinceId, false);
                    this.ddlCity.DataSource = p.City;
                    this.ddlCity.DataTextField = "CityName";
                    this.ddlCity.DataValueField = "CityID";
                    this.ddlCity.AutoPostBack = true;
                    this.ddlCity.DataBind();
                }
            }
       2. 上面的例子是省和市  市的类中必须有个IList集合类型的市 属性
       3. 其他绑定数据源的方法你也可以想一下
      

  6.   

    建议你在数据表中添加一字段,parentId
    假设中国id为1,设置parentId 为0  日本id 为2 parentId也为0;
    那么将北京。的parentId设为1,这样不可实现在级联吗?
      

  7.   

    数据表中添加一parentId字段,像我上面说的,可以实现无限级联的
      

  8.   

    太简单问题的问题
    1第一个控件已经直接数据库读取
    2第二个控件在第一个控件选择时取值为查询数据库条件,先清空第二个控件内容,然后用查询值ADDprotected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)
        {
             DropDownList3.Items.Clear();
    if (DropDownList3.Items.Count <= 0) 
                        { DropDownList3.Items.Add(XXX.ToString()); }