如何擴展ExtJS(版本3.3.1)組件,例如一個Ext.Panel嵌套在文檔層次結構中的某個地方以「全屏」,以便佔據整個瀏覽器窗口區域?我想我需要動態創建一個Ext.Viewport並重新組合「擴展」,但目前爲止我沒有成功。有人可以提供一個工作樣本嗎?如何將ExtJS組件擴展爲全屏並稍後恢復?
此外,我希望能夠在稍後的某個時間點將組件恢復到原來的位置,如果這是可能的話。
我試過如下:
new Ext.Button({ text: 'Fullscreen', renderTo : Ext.getBody(), onClick: function(){
var viewPort = new Ext.Viewport({
renderTo: Ext.getBody(),
layout: "fit",
items: [ panelToBeExpanded ]
});
viewPort.doLayout();
}});
不很好地工作。單擊該按鈕後,面板panelToBeExpanded
似乎佔據視區區域,但前提是BODY區域中沒有HTML,否則viewport未完全展開。而且,之後使用重新安裝的面板會在大多數瀏覽器中導致奇怪的閃爍。
是否有一種可靠的方法來通用(理想情況下是暫時)將組件擴展到整個瀏覽器窗口?
UPDATE
由於在評論中建議,創建一個新的最大化Ext.Window似乎是一個很好的解決方案。第二部分雖然有點棘手 - 一旦窗口關閉,如何將重新設置的組件移回原始位置在DOM(和ExtJS組件層次結構)中?
感謝您的幫助!
可能是你可以使用Ext.Window與方法最大化和恢復... – TheHorse 2011-05-24 18:01:38
謝謝,一些試驗後,這似乎是要走的路。關於如何在窗口關閉後將重新設置的組件移回到原來的位置(和ExtJS組件層次結構)的任何想法? – 2011-05-24 19:57:51