程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> updatePanel和lightbox

updatePanel和lightbox

編輯:.NET實例教程
最近做項目,用到了微軟的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都可以正常執行了.具體因為什麼失效沒有深入研究,呵呵,因為我比較懶.第一次寫文章有點亂,大家湊合看吧.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved