在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 相关文章推荐
一个高效的JavaScript压缩工具下载集合
Mar 06 Javascript
javascript实现的网页局布刷新效果
Dec 01 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
Jun 26 Javascript
DOM操作一些常用的属性汇总
Mar 13 Javascript
jquery调整表格行tr上下顺序实例讲解
Jan 09 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
javascript如何实现360度全景照片问题汇总
Apr 04 Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
JS一次前端面试经历记录
Mar 19 Javascript
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
dedecms模板标签代码官方参考
2007/03/17 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Python 私有函数的实例详解
2017/09/11 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
解决python对齐错误的方法
2020/07/16 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
拓展培训心得体会
2014/01/04 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
机关出纳岗位职责
2014/04/03 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
2015年工程师工作总结
2015/04/30 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
keepalived + nginx 实现高可用方案
2022/12/24 Servers