在UpdatePanel内jquery easyui效果失效的解决方法


Posted in Javascript onApril 11, 2010

使用easyui 的好处除了界面还不错之外,也因为使用方便。

<div class="easyui-tabs" style="width: 300px"> 
<div title="搜索"> ...</div> 
<div title="选择">...</div> 
<div title="返回">...</div> 
</div>

只要给他定义个相应的class 就能实现各种效果。
在UpdatePanel内jquery easyui效果失效的解决方法
但是,把它放在updatepanel里面,且不是首次就让他显示出来的话就出故障了。
<asp:MultiView ID="MultiView1" runat="server"> 
<asp:View ID="View1" runat="server"> 
<div class="easyui-tabs" style="width: 300px"> 
<div title="搜索"> 
...</div> 
<div title="选择"> 
...</div> 
<div title="返回"> 
...</div> 
</div> 
</asp:View> 
<asp:View ID="View2" runat="server"> 
<div class="easyui-tabs" style="width: 300px"> 
<div title="搜索"> 
...</div> 
<div title="选择"> 
...</div> 
<div title="返回"> 
...</div> 
</div> 
</asp:View> 
</asp:MultiView>

在multipleView里面定义两个一样的view,内容也一样。并把 MultiView1放到updatepanel里面。

然后设置他显示第一个view

MultiView1.ActiveViewIndex =0;

浏览一下。显示正常。但是当我们改变view的显示时,例如把上面的改成 MultiView1.ActiveViewIndex =1;那么第二个veiw的效果就全无了。

到jquery.easyui.min.js 里找原因。看到了这么一句

r=$(".easyui-tabs",_1ec); 
if(r.length){ 
    r.tabs();

大概就是在网页加载完后,寻找class定义为easyui-tabs 的层。并把效果附加给他。

那么可以想象,当页面加载时,我们显示的是第一个view,那么js就找到view里的层,并赋予其效果。
然后我们在updatepanel里更新了显示的view,内容虽然切换到了第二个view了。但是页面没有重新加载,上面的js代码没有对新的view执行改变。
所以决策就是当updatepanel回发后重新执行js代码。
在页面定义一个重新绑定的函数。

function EndRequestHandler() { 
$(".easyui-tabs").tabs(); 
}

再定义一个事件。
function reload() { 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
}

add_endRequest
PageRequestManager 类是一个管理浏览器中服务器 UpdatePanel 控件的部分页更新。此外,还定义一些属性、事件和方法,用以通过客户端脚本对网页进行自定义。通过调用 getInstance 方法来得到 PageRequestManager 类的实例。然后通过 add_endRequest 方法来绑定 endRequest 事件(异步回发完成,并且控制权返回到浏览器之后引发)。这样以后,每次updatepanel发生回调后,都会触发EndRequestHandler()函数。重新绑定一次效果。$(document).ready(function() { reload(); })
失效问题就解决了。
Javascript 相关文章推荐
JQuery index()方法使用代码
Jun 02 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
JavaScript实现重置表单(reset)的方法
Apr 02 Javascript
JavaScript 闭包详细介绍
Sep 28 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
webpack4实现不同的导出类型
Apr 09 Javascript
JS判断数组里是否有重复元素的方法小结
May 21 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 Javascript
Vue.extend 登录注册模态框的实现
Dec 29 Vue.js
JavaScript调用Activex控件的事件的实现方法
Apr 11 #Javascript
javascript dom 基本操作小结
Apr 11 #Javascript
JS Excel读取和写入操作(模板操作)实现代码
Apr 11 #Javascript
一个js的tab切换效果代码[代码分离]
Apr 11 #Javascript
YUI的Tab切换实现代码
Apr 11 #Javascript
利用JS重写Cognos右键菜单的实现代码
Apr 11 #Javascript
可以将word转成html的js代码
Apr 11 #Javascript
You might like
php基础知识:类与对象(5) static
2006/12/13 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
php 过滤器实现代码
2010/08/09 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
Python实现字典的key和values的交换
2015/08/04 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
计算机应用与科学个人的自我评价
2013/11/15 职场文书
医学院校毕业生自荐信范文
2014/01/01 职场文书
高中体育教学反思
2014/01/29 职场文书
应急处置方案
2014/06/16 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
合作经营协议书范本
2014/09/16 职场文书
新员工考核评语
2014/12/31 职场文书
打架检讨书
2015/01/27 职场文书
求职意向书范本
2015/05/11 职场文书
高中生军训感言
2015/08/01 职场文书