您的位置:首页 > 其它

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

2010-02-10 10:39 387 查看
第一、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的。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: