我想做个关联下拉菜单,所以把第一个下拉列表的AUTOPOSTBACK设为TRUE,但是发现在选择后自动刷新里面的值又变成第一个了,请问这个问题应该怎么解决。我不会JAVA,有没有不用JAVASCRIPT而且效果也比较好的方法实现关联菜单

解决方案 »

  1.   

    你的装载dropdownlist的方法必须这样写
    if(!Page.IsPostBack)
    {
        //load dropdownlist
    }
    因为你点击第一个dropdownlist时它会再次load页面,所以就变成了第一为默认了,这样处理后就ok了
      

  2.   

    if page.ispostback = false then
     'load dropdownlist
    end if
      

  3.   

    先写一个RropBind()
    if(!Page.IsPostBack)
    {
       RropBind();
    }
    多个Drop绑定时候记得第二第三个必须Item.Clear()
      

  4.   

    做级联菜单,最好就是用XMLHTTP 做无刷新的级联菜单,具体怎么做就在论谈上以"级联菜单"或"XMLHTTP"为关键字进行搜索就可以了,有很多的现成的代码的例子.
      

  5.   

    但是发现在选择后自动刷新里面的值又变成第一个了,
    ----------------------
    那是因为你后台加载下拉框数据没有引用ispostback
    只要把初次加载数据放在if(!Page.IsPostBack)里面,之后在下拉框事件里面处理另一个级联下拉框的数据就可以了
      

  6.   

    两种解决方法
    1.看DropDownList的数据绑定放在!PageIsPostBack里
    2.使用级联菜单实现无刷新联动
    参考文章:http://www.pconline.com.cn/pcedu/empolder/wz/asp/0408/440941.html
      

  7.   

    我想问下'load dropdownlist是什么意思,还有第二个列表绑定应该是在哪
      

  8.   

    造成这一问题的原因其实很简单,因为你的dropdownlist中的DataTextField、DataValueField不是一一对应关系,而这一控件它作处理的时候事实上是通过DataValueField来进行触发SelectedIndexChanged事件的,所以一旦DataTextField对应的DataValueField一样的话就无法触发SelectedIndexChanged事件,从而导致表面上DataTextField发生变化而结果却不是我们想要的结果