updatePanel和lightbox 相结合应用的问题及解决方案

最近做项目,用到了微软的ajax框架,发现updatepanel在给我们带来很大方便的同时也给我们造成了不小的麻烦.

有很多开源的js框架回合updatepanel产生冲突导致失效或者直接崩溃.

这回书讲的就是当updatepanel和lightbox相遇时该怎么办!

这次要做一个相册,用到了updatepanel做不刷新的相册翻页,但是相册的展示效果是用lightbox这个开源框架实现的.结果做完了以后才发现,只要updatepanel一更新lightbox的效果就会消失,在网上找了半天也没见到过同样问题的人.看来就我一个人没事用这两个东西.呵呵.还好解决了.下面说一下解决的方法,希望可以帮助到大家.

其实也非常简单,稍微测试一下就会发现updatepanel回发回来的数据内容是对的."rel='lightbox'"这个标签还在,所以可以肯定不执行的原因就是出在了js和updatepanel的冲突上,去看了一下lightbox的帮助文档,发现一个类似的问题

完全不工作. 图片在新窗口中打开. 出什么问题了?
这一般是由 JS 脚本的冲突导致的. 检查 body 标签并寻找 onload 属性. 例如:
<body onload="MM_preloadImages(‘/images/menu_on.gif’)…;">
对这个问题的快速修正就是添加 initLightbox() 到 onload 属性, 如下:
<body onload="MM_preloadImages(‘/images/menu_on.gif’)…;initLightbox()">

于是我就做了个实验,每次在updatepanel更新的时候在页面注册一下initLightbox()这个函数

 

ScriptManager.RegisterClientScriptBlock( this .Page,  this .GetType(),  " TestAlert " " initLightbox(); " true );

结果问题迎刃而解,在运行不管如何更新updatepanle,lightbox都可以正常执行了.具体因为什么失效没有深入研究,呵呵,因为我比较懒.第一次写文章有点乱,大家凑合看吧. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值