Extjs中ViewPort動態更換Panel

2021-08-21 03:43:02 字數 1945 閱讀 1802

我們在使用extjs進行開發單頁面應用時,我們構建了乙個viewport有時候可能希望對viewport中的items進行動態替換,網上也有很多的資料但是都只說了個大概並沒有詳細說明,這裡我將對遇到這種需求時如何處理進行詳細介紹。

環境

extjs 4.2

首先我們來看viewport

/**

* 選單model

*/ext.define('menu', , , , ]

});ext.onready(function () ).hide();

ext.create('ext.container.viewport', );

});/**

* 構建指標樹

* @returns

*/function material_zbtree() ,

proxy:

}),listeners: );

},//單擊節點展開之前的事件

'beforeitemclick': function (view, record, item, index, e)

}});

}

首先我構建了乙個viewport,這個viewport的west有乙個樹形選單,樹形選單是多級樹形選單,針對沒級的選單需要載入特定的panel,我們來看看兩個panel

var yjxngridstore = ext.create('ext.data.store', ,

extraparams: {},

startparam: 'start',

limitparam: 'limit'

}});function

material_yjxngridpanel

() ,,],

dockeditems: [;

yjxngridstore.reload();}}

}, ;

yjxngridstore.reload();}}

}, ;

yjxngridstore.reload();}}

}, }]

}, ]

});}

推薦所有的panel的構建都通過function來進行,這裡基礎的環境就有了,下面我們就來看看如何動態的切換panel

function

material_loaditems

(j)

if (j.id == 'secondxingneng')

if (j.id == 'thirdxingneng')

var viewport = ext.getcmp('xnzbviewport');

viewport.items.each(function

(item)

});gridpanel.getstore().reload();

gridpanel.show();

viewport.add(gridpanel);

viewport.dolayout();

}

viewport通過呼叫material_loaditems方法來動態載入panel,並實現動態切換

具體的思路就是

1、獲取到viewport

2、遍歷viewport的items移除當前的panel,記住這裡採用的是viewport.remove(item, false);其中false表示的是只是從viewport移除這個panel但是並沒有銷毀這個panel,同時要注意乙個方法item.hide();就是移除的這個panel需要隱藏,不然會跟新新增的panel重疊導致問題出現(我就是遇到這個問題,花了很長時間才找到這個問題)

3、移除完了panel後再新增自己想要新增的panel,同時需要呼叫viewport的dolayout方法顯示新新增的panel

這樣就完成了viewport的panel的動態切換

ExtJs 中Viewport的介紹與使用

extjs 中viewport的介紹與使用 veiwport 代表整個瀏覽器顯示區域,該物件渲染到頁面的body 區域,並會隨著瀏覽器顯示區域的大小自動改變,乙個頁面中只能有乙個viewport 例項。viewport 不需要再指定renderto,而我們也看到viewport 確實填充了整個瀏覽器...

viewport中的屬性

在開發移動端專案的時候,對 viewport 進行適配是必不可少的 viewport content width device width,initial scale 1.0,maximum scale 1.0,minimum scale 1.0,user scalable no 總結下 通過met...

meta中viewport的使用

隨著高階手機 andriod,iphone,ipod,winphone等 的盛行,移動互聯應用開發也越來越受到人們的重視,用html5開發移動應用是最好的選擇。然而,每一款手機有不同的解析度,不同螢幕大小,如何使我們開發出來的應用或頁面大小能適合各種高階手機使用呢?學習html5 viewport的...