[英]ExtJs window doesn't show
我有一個切換按鈕:
var button = new Ext.Button({
tooltip: "Интенсивность",
iconCls: "gxp-icon-intensity",
enableToggle:true,
toggleHandler: function (button, state) {
if(state){
alert(state)
map.getLayersByName("Интенсивность")[0].setVisibility(true);
intWin.show();
}else{
map.getLayersByName("Интенсивность")[0].setVisibility(false);
alert(intWin.collapsed);
//intWin.close();
}
}
});
當切換按鈕時,我顯示一個窗口:
var intWin = new Ext.Window({
id: 'intWin',
layout: 'fit',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});
當我關閉窗口時,該按鈕將取消切換。 但是當我再次單擊它時,我沒有窗口。 Firebug顯示此錯誤:
TypeError: b.dom is undefined
...String(this.enableUrlEncode)?this.enableUrlEncode:"data"]=Ext.encode(b);g.params...
這里有什么問題?
UPDATE
哦,我不好。 我試圖顯示一個被破壞的元素。
但是在這種情況下:
1當我關閉窗口並被銷毀時,此窗口中的任何表格也會被銷毀嗎?
2如何檢查窗戶是否被破壞?
UPDATE2
現在,我嘗試使用此函數來創建窗口:
function intWinCreate(){
var intWin = new Ext.Window({
id: 'intWin',
layout: 'fit',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});
};
並在按鈕處理程序中:
intWinCreate();
intWin.show();
但是我得到一個錯誤:
ReferenceError: intWin is not defined
如果我輸入intWin.show();
進入功能,然后顯示該窗口。
有什么事嗎
當一個元素被破壞時,它里面的所有東西也會被破壞。
在您的情況下,您可以通過將屬性closeAction: 'hide'
設置為closeAction: 'hide'
來更改關閉動作的默認行為closeAction: 'hide'
這將導致窗口隱藏而不是被破壞。
例如:
var intWin = new Ext.Window({
id: 'intWin',
layout: 'fit',
closeAction: 'hide',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});
更新:
這是因為intWin
是方法的局部變量intWinCreate
。 您可以做的是從方法中返回窗口並在其上調用show。
function intWinCreate(){
return new Ext.Window({
id: 'intWin',
layout: 'fit',
title:'Интенсивность',
autoScroll:false,
width:300,
items:[/*intForm*/]
});
};
然后
intWinCreate().show()
UPDATE
如我所見,您已經有一個背心了,但我也有另一個背心了;)只要您設置好
id: 'intWin'
您可以使用以下任何位置訪問此窗口:
Ext.getCmp()
這樣就可以顯示它:
Ext.getCmp('intWin').show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.