Почему я не могу показать новое Ext.Window дважды - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть HTML с одним div и двумя скриптами с Ext Js 3.4.0

<script type="text/javascript" src="js/listaBancos.js"></script>

В файле listaBancos.js в DivListaBancos отображается кнопка «Сетка с панелью инструментов», при первом нажатии кнопки «Agregar» открывается окно, объявленное в altaBanco.js.

============== Часть сетки в listaBancos.js ============

 tbar:[{
    text:'Agregar',
    tooltip:'Agrega un banco',
    iconCls:'add',
    handler: agregaBanco
}]

function agregaBanco(){
var win =Ext.getCmp('myWin');
win.show();

}

============== Окно объявлено в altaBanco.js ================

var winAltaBanco = new Ext.Window({
    id     : 'myWin',
    height : 250,
    width  : 400,

});

Когда я закрываю окно, затем снова нажимаю кнопку, окна не отображаются.

Можете ли вы помочь мне ???

Ответы [ 3 ]

1 голос
/ 09 декабря 2011

Действие close по умолчанию для окон - close, то есть оно уничтожает компонент, поэтому к нему нельзя получить доступ, используя Ext.geCmp() снова, так как оно больше не существует на DOM. Чтобы достичь желаемого, установите closeAction : hide или

var cmp = Ext.getCmp('myId');
if(!cmp)
{
cmp = new Ext.Window({
  id : 'myId'
});
}
cmp.show();

Предпочитаю прятаться, чтобы воссоздать.

0 голосов
/ 11 декабря 2011

Нет необходимости делать какие-то трюки, просто удалите свой идентификатор окна.В ExtJS идентификаторы компонентов должны быть уникальными.

0 голосов
/ 09 декабря 2011

Убедитесь, что в настройках окна действие закрытия установлено для скрытия.

closeAction:'hide'

check this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...