然后設置他顯示第一個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(); })
失效問題就解決了。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com