在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 相关文章推荐
js CSS操作方法集合
Oct 31 Javascript
基于node.js的快速开发透明代理
Dec 25 Javascript
javascript中的作用域scope介绍
Dec 28 Javascript
js事件(Event)知识整理
Oct 11 Javascript
Jquery 数组操作大全个人总结
Nov 13 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
Angular CLI 安装和使用教程
Sep 13 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
Sep 22 Javascript
微信小程序调用摄像头隐藏式拍照功能
Aug 22 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
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框架的性能
2008/01/10 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
javascript的console.log()用法小结
2012/05/31 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
Python中用于返回绝对值的abs()方法
2015/05/14 Python
python 多个参数不为空校验方法
2019/02/14 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
2015年工程师工作总结
2015/04/30 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
Redis特殊数据类型bitmap位图
2022/06/01 Redis