关于updatapanel和jquery之间的冲突 以及scriptmanager.registerstartupscript方法的重点

来源:互联网 发布:万能电子狗升级软件 编辑:程序博客网 时间:2024/06/05 07:37

    网上关于updatapanel 与 jquery冲突的文章不多,主要提到了 asp.net ajax 事件中 通过内置的js脚本库生成的 Sys.application 对象 这个对象包含了 几个生命周期,因为jquery 的ready函数 是在dom加载完毕后调用 而jquery的ajax函数均是全局函数 和ready是同级别的 意味着如果你要在 asp.net ajax框架中使用 jquery 就必须在application 对象的load 事件中声明 jquery 的函数 以便在异步页面调用中保持 jquery函数的可用性,对于使用了母版页的朋友 就必须写在母版页的的form之前 仔细观察 合成的网页可以在母版页中看到 sys.application.initialize 这是就是初始化 application对象 ,这对于使用公共 jquery效果有效 但是如果只是针对某个页面或者说我有 无数内容页 每个内容页包含特定的 需要异步更新的控件 ~^总不能都写到母版页下面去吧 当然你还可以取消母版页 改用 iframe 或者其他替代的方式 ,我们这里仅针对使用母版页的情况,关键就在于

startupscipt方法里的 control msdn给的解释是 给updatapanel的控件注册一个启动的脚本, 网上很多转载的方法 这里用了 this.updatapanel 针对整个updatapanel 基础不好的碰到复杂点的情况就蒙了,事实上 这种简单的调用 仅适合 全部更新的updatapanel 如果里面有 trigger 包含了控制的控件 就会失效,这时候 updatapanel 默认的方式是control 你再注册启动脚本就无效了 因为程序会调用指定的control来更新页面, 所以要使注册的脚本有效 就必须注册在你被控制的control里 这样才会有效.

0 0
原创粉丝点击