时间:2016-02-15 21:32 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP.NET中UpdatePanel与jQuery同时使用所遇问题解决】,下面是详细的讲解!
ASP.NET中UpdatePanel与jQuery同时使用所遇问题解决
今天,在.NET中使用了UpdatePanel,里面的输入框使用了jQuery的日历选择器:运行之后正常:
可是,运行之后,点击"查询",页面局部刷新,发现日历选择器不出来了,找了很多资料,他们讲:
分析1:UpdatePanel
UpdatePanel在应用中主要用于局部刷新,避免整个页面的Postback。
UpdatePanel实现局部刷新的核心在于MicrosoftAjaxWebForm.js文件,它的局部刷新过程就是将页面提交到服务端(包 含ViewState),执行服务端代码后异步将在UpdatePanel内的HTML进行重新呈现。
在此过程中,页面的其它部分并没有状态更改。
分析2:jQuery
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局部刷新之后,其中的文本框元素被重写,而此时整个DOM树并没有重新加载,所以jQuery的ready事件并没有触 发,所以文本框元素就失去了原有的特效。
解决方案:
我们可以将ready事件中执行的代码提取出来:
在jQuery中也放入这个函数:
然后通过捕获ScriptManager的EndRequest事件,在每次 UpdatePanel局部刷新之后执行一次jQuery初始化代码,如下所示:
最后,再在<body>中加上load()函数,即:
这样,即便UpdatePanel局部刷新,jQuery代码也能执行。
关于ASP.NET中UpdatePanel与jQuery同时使用所遇问题解决的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【TextBox】Asp.net TextBox的TextChanged事件使
- 【Forms身份认证】Forms身份认证在IE11下无法保存
- 【GridView】GridView使用CommandField删除列实现
- 【Asp】用Html5与Asp.net MVC上传多个文件的实现
- 【Asp】Asp.Net性能优化技巧汇总-Net--性能-优化-
- 【AspNetPager】AspNetPager控件的最基本用法
- 【ASP】简单好用的ASP.NET分页类(支持AJAX、自定
- 【net】.net 读取非标准配置文件的小例子-非标准-
- 【验证码】C# 生成验证码取随机数字加字母(改进版
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
