updatepanel失效怎么办_[转]jquery与updatepanel二次失效问题解决方案-阿里云开发者社区...
现在越来越多的朋友喜欢将jQuery和ASP.NET AJAX 一起来用,最近,许多印度人在forum里抱怨说UpdatePanel和jQuery不兼容,许多jQuery效果在UpdatePanel更新之后就 不work。本篇通过分析两者的框架结构来解决这个兼容性问题。
问题重现: 1. 在页面中添加ScriptManager和UpdatePanel2. 在UpdatePanel中添加元素A3. 用jQuery对元素A添加X效果4. 在UpdatePanel中加一个Button B用作postback 结果:在第一次页面加载时,元素A的X效果正常,点击B之后,页面局部刷新,此时,元素A失去X效果
分析1:UpdatePanel
UpdatePanel在应用中主要用于局部刷新,避免整个页面的Postback。
UpdatePanel实现局部刷新的核心在于MicrosoftAjaxWebForm.js文件,它的局部刷新过程就是将页面提交到服务端(包 含ViewState),执行服务端代码后异步将在UpdatePanel内的HTML进行重新呈现。
在此过程中,页面的其它部分并没有状态更改。
分析2:jQuery
可以通过简单的代码对 HTML元素添加各种属性和事件句柄,我们可以在这里看到官方的文档:
Tutorials:How jQuery Works
http://docs.jquery.com/How_jQuery_Works
在这里,我们可以得知,jQuery有个重要的事件标记“ready”,一般 对HTML元素的效果和事件句柄都通过这个ready事件来添加,如下:
$(document).ready(function () {
$("p").text("The DOM is now loaded and can be manipulated.");
});
官方对此的说明是:ready事件会在DOM完全加载后运行一次,OK,至此,问题的原因差不多明白了:
原因:
因为在UpdatePanel局部刷新之后,其中的元素A被重写,而此时整个DOM树并没有重新加载,所以jQuery的ready事件并没有触 发,所以元素A就失去了原有的特效。
解决方案:
我们可以将ready事件中执行的代码提取出来,然后通过捕获ScriptManager的EndRequest事件,在每次 UpdatePanel局部刷新之后执行一次jQuery初始化代码,如下所示:
function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}function EndRequestHandler() {
ReadyFunction1();
ReadyFunction2();
ReadyFunction3();
}
updatepanel失效怎么办_[转]jquery与updatepanel二次失效问题解决方案-阿里云开发者社区...相关推荐
- apache camel 相关配置_使用apache camel从表中选择数据-问答-阿里云开发者社区-阿里云...
我希望能够使用Camel连续轮询数据库以从表中选择数据.我已经在我的Spring Boot应用程序中配置了Camel.这是我正在使用的配置 build.gradle: implementation ' ...
- nacos 本地测试_本地调试和服务器调试都无法连通-问答-阿里云开发者社区-阿里云...
本地调试和服务器调试都无法连通 anand 2018-11-20 16:30:31 4696 异常信息: com.alibaba.nacos.api.exception.NacosException: ...
- 阿里云rds mysql 并发_干货 | 浅析RDS MySQL 8.0语句级并发控制-阿里云开发者社区
背景 为了应对突发的数据库请求流量.资源消耗过载的语句访问.SQL 访问模型的变化, 并保持 MySQL 实例持续稳定运行,阿里云RDS for MySQL 8.0所采用的AliSQL分支设计了基于语 ...
- mysql double 存储_关于MYSQL中FLOAT和DOUBLE类型的存储-阿里云开发者社区
关于MYSQL中FLOAT和DOUBLE类型的存储 重庆八怪 2016-04-12 844浏览量 简介: 关于MYSQL中FLOAT和DOUBLE类型的存储 其实在单精度和双精度浮点类型存储中其存储方 ...
- python树莓派编程 沃尔弗拉姆_《 Python树莓派编程》——3.3 Python入门-阿里云开发者社区...
本节书摘来自华章出版社<Python树莓派编程>一书中的第3章,第3.3节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著韩德强 等译,更多章节内容可以访问云栖社区&quo ...
- xlsx模块 前端_纯前端利用 js-xlsx 之单元格样式(4)-阿里云开发者社区
0.单元格样式: 样式属性 子属性 取值 fill patternType "solid" or "none" fgColor COLOR_SPEC bgCol ...
- python复工_手把手教你使用Python批量创建复工证明-阿里云开发者社区
/1 前言/ 受疫情影响,2020年2月份.3月份企业复工需为员工开具复工证明.因本公司人数较多,复制粘贴工作量巨大,特此为行政同事写此小工具,现与诸位共享. /2 目标/ 1.实现批量将 Excel ...
- qiankun 传统项目配置_飞猪微前端实践:统一运营工作台的解决方案-阿里云开发者社区...
作者:侑夕 飞猪一体化运营工作台一期工作经过 3 个月的开发终于内部开始使用,期间我们面向运营场景,基于微前端与 SDK 化的一体化集成方案,完成 4 大场景 10 余个平台的接入和配置打通,并对数百 ...
- drawstring 文本居中_从Graphics.DrawString()居中输出文本
-问答-阿里云开发者社区-阿里云...
我正在使用.NETCF(Windows Mobile)Graphics类和将DrawString()单个字符呈现到屏幕的方法. 问题是我似乎无法使其正确居中.无论我为字符串渲染的位置的Y坐标设置什么, ...
- mysql join 索引 无效_ORACLE MYSQL中join 字段类型不同索引失效的情况-阿里云开发者社区...
ORACLE MYSQL中join 字段类型不同索引失效的情况 重庆八怪 2016-12-29 780浏览量 简介: 关于JOIN使用不同类型的字段类型,数据库可能进行隐士转换,MYSQL ORACL ...
最新文章
- Spark Streaming实时计算框架介绍
- 百度2020Q3财报:“十四五”规划注入新动能,百度智能云驶入快车道
- 中国区块链应用市场将爆发,百度创新指数第一,位居“区块链应用市场领导者”
- 易混淆知识点(3):b和strong的真正区别在哪?
- Java 总结finalize()方法
- HTML页面加载顺序
- Java棘手面试问题
- 白板推导系列Pytorch-隐马尔可夫模型-概率计算问题
- 爱立顺m33+android+4.4.2,更美丽更流畅 爱立顺M33升级Android 4.4.2
- 一款自动生成唯一头像的开源代码库
- jupyter添加新的语言包
- 响应式餐饮牛杂小吃类网站源码 dedecms织梦模板 (带手机端)
- 一款仿古文本编辑器---edit.exe
- 病案编码员需要计算机的什么知识,病案编码员要怎么学习?
- AutodeskADN 微信公众号和我个人邮箱
- 计算机无法登录到你的账户,win10电脑无法登陆到你的账户怎么办?win10电脑无法登陆到你的账户相关讲解...
- 《强化学习周刊》第17期:ICLR-2021强化学习的最新研究与应用
- 【入门】算法初步1 排序
- 数字信号处理(一)绪论
- 怎样设定绩效考核指标