1. 程式人生 > >easyui tabs切換 已開啟時更新資料

easyui tabs切換 已開啟時更新資料

在使用easyui控制元件開發管理系統介面時,比較常見的模式是左邊選單導航,右邊採用tabs結合iframe切換不同頁面這裡寫圖片描述

每次點選左邊導航選單時,右邊載入對應的頁面,關於tab頁面切換,參照官方demo,程式碼如下:

function addTab(title, url){
    if ($('#tabs').tabs('exists', title)) {
        $('#tabs').tabs('select', title);
    } else {
        var content = '<iframe scrolling="auto" frameborder="0"  src="'
+url+'" style="width:100%;height:100%;"></iframe>'; $('#tabs').tabs('add',{ title:title, content:content, closable:true }); } }

思路是在新增tab時先判斷tabs中是否已經存在該標題的tab頁,如果存在,則直接選中該頁面,不存在則新增tab頁面。但是當tab頁已經存在,再次點選時,所做的操作只是再次選中,並沒有重新整理資料顯示,這對於資料實時性較高的系統顯然是不夠的,如涉及流程回退和提交時,當資料被回退時,應該立刻能在上一個頁面中顯示,此時則需要先加以開啟的tab頁關閉,再次點選才能看到資料,顯然增加了操作,不符合使用者一般習慣。如圖,【交易中心初審】初始介面如下
交易中心初始介面資料


需要回退頁面初始:
這裡寫圖片描述
按照系統設計,點選圖中的回退按鈕時,資料回退到【交易中心初審】頁面顯示,但是在點選回退後再交易中心初審介面卻發現還是原先的資料
點選回退後交易中心介面

結合上面的程式碼可以發現,是頁面沒有重新重新整理載入資料的原因,結合easyui tabs控制元件API做以下修改:

function addTab(title, url) {
    if ($('#tabs').tabs('exists', title)) {
        $('#tabs').tabs('select', title);
        var selTab = $('#tabs').tabs('getSelected'
); var url = $(selTab.panel('options').content).attr('src'); $('#tabs').tabs('update', { tab: selTab, options: { content:createFrame(url) } }) } else { var content = '<iframe scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:100%"></iframe>'; $('#tabs').tabs('add', { title: title, content: content, closable: true }); } }

點選回退後,再次點選左側 交易中心初審 功能,結果如下,資料已經更新