在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也能使用EXTJS视频演示
Dec 29 Javascript
理解JavaScript的caller,callee,call,apply
Apr 28 Javascript
改写一个简单的菜单 弹性大小
Dec 02 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
js钢琴按钮波浪式图片排列效果代码分享
Aug 26 Javascript
javascript同步服务器时间和同步倒计时小技巧
Sep 24 Javascript
jQuery实现宽屏图片轮播实例教程
Nov 24 Javascript
浅谈AngularJs指令之scope属性详解
Oct 24 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
jquery实现图片平滑滚动详解
Mar 22 jQuery
vue iview实现动态新增和删除
Jun 17 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 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
FCKeditor的安装(PHP)
2007/01/13 PHP
PHP5+UTF8多文件上传类
2008/10/17 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
Python中 map()函数的用法详解
2018/07/10 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
详解用python写一个抽奖程序
2019/05/10 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
医生自荐信
2013/10/11 职场文书
银行出纳岗位职责
2013/11/25 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
上班打牌检讨书
2014/02/07 职场文书
户外活动策划方案
2014/03/12 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
委托书范本
2014/09/13 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
怎样写观后感
2015/06/19 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
python cv2图像质量压缩的算法示例
2021/06/04 Python