Denver.Y

 

vs2005环境下Ajax控件updatepanel的一些 Bug和一些比较郁闷的地方

第一、Session丢失:

  相信很多人都遇到这种情况,在通过updatepanel内部控件事件,或者注册至 upadatepanel的标签内的一些控件事件,作为对Session进行首次赋值(初始化Session)的操作时会抛一个alert异常的临时对话框至IE,并中断了赋值操作。但是忽略后就不会再重现这个异常,Sevice重启后首次操作就又会重现。

   解决方法:1、在项目里首次对Session的操作不要放在Updatepanel里面,这样可以避免Ajax在初始化Session的时候产生的冲突;

        2、在page头里面将EnableEventValidation的值设置为False(默认是True),通过该值会去判断是页面验证回调事件还是验证回发事件,此事件验证机制可消除未经授权的回发请求和回调带来的风险。通过此模型,控件可在呈现期间注册其事件,然后在回发或回调期间验证这些事件。默认情况下,ASP.NET 中的所有事件驱动控件均使用此功能。

 

第二、Response对象:

  其实这不能算是个Bug,对于Ajax要实现的方向来说是无刷新异步数据互交,而Response对象的很多操作都是强制性刷新机制的,只是有些情况布局不大合理进行挽救的时候发现在updatepanel下某个控件出发了response的一些操作,造成抛出异常中断逻辑。

  解决方法:通过ScriptManager是可以将部分控件用注册的形式(ScriptManager.RegisterPostBackControl(Control))来排除出updatepanel的。 

 

 

 

 

   

posted on 2010-02-10 10:39  Denver  阅读(662)  评论(0编辑  收藏  举报

导航