崩溃了,EnableViewState我一直就是True的

解决方案 »

  1.   

    程序里有两个DROPDOWNLIST,第一个是area_list,它的AUTOPOSTBACK=TRUE,第二是数据绑定的DROPDOWNLIST,ID为brbank_list,当AREA_LIST的SELECTINDEX变化后,他自动回发数据库后brank_list数据绑定,可这时候brank_list的selectindex始终为0了。
    我把area_list的AUTOPOSTBACK设为false后,在一开始page_load时就把brank_list绑定就不会出现这种错误。brank_list的EnableViewState也是TRUE的,不知道是什么道理,大家再帮我看看
      

  2.   

    你的brank_list的绑定是在page_load里面进行的,而且area_list的AUTOPOSTBACK=TRUE,这样就会有个问题,每次area_list选定,即area_list的SelectedIndex改变时,都会回发服务器,这样就会运行page_load。
    你应该明白了吧。如果你想根据area_list的选定项来对brank_list进行绑定,那最好是写个brank_list的DataBinding()事件,并且在area_list_SelectedIndexChanged()里添一句brank_list.DataBind();
      

  3.   

    哦,还有点不明白,我这样写brank_list的数据是可以绑定到的,就是brank_list的SelectedIndex怎么也不会变,有点想不通
      

  4.   

    你每次回发都重新绑定一次数据?======================================================
    AspNetPager免费分页控件:http://www.webdiyer.com
      

  5.   

    我想程序运行的步骤可能是这样的吧:
    页面第一次运行,先是 1:Page_Load() 对area_list进行数据绑定,
    然后是你在area_list里作了选择,由于area_list的AUTOPOSTBACK=TRUE,所以回发服务器,
    页面刷新,运行 2: Page_Load() ,在这期间,根据area_list.SelectedIndex所对应的在数据库的内容,设定了brank_list的数据源,之后才触发 3:area_list.SelectedIndexChanged()。然后你选择了brank_list的选项,这时brank_list的SelectedIndex已经改变了,但是当你提交你的页面,也就是你企图在后台服务器端获得brank_list.SelectedIndex时(我假设你用了一个提交按钮Button_Commit),当你点击了那个Button_Commit后,网页提交,运行4: Page_Load(),这个时候,很不幸地再次设置了brank_list的数据源,这必然使brank_list的SelectedIndex不想预期一样了。而你在 5: Button_Commit_OnClick()里获得的brank_list.SelectedIndex就始终为0了。关键的地方就在于每一次页面提交到服务器都会触发Page_Load()事件。1: Page_Load()
    2: Page_Load()
    3:area_list.SelectedIndexChanged()
    4: Page_Load()
    5: Button_Commit_OnClick()其实我也是猜的而已,你还是把代码全贴上来吧。