Добавление элемента в существующее окно - PullRequest
0 голосов
/ 24 мая 2010

Как я могу добавить элемент в существующее окно? Я попытался win.add (), но это не похоже на работу. Зачем? Это мой кусок кода:

function combo_service(winTitle,desc,input_param) {

        /* parametri */
        param=input_param.split(","); /* della forma: param[0]="doc1:text", quindi da splittare di nuovo */

   /* cosi' non la creo più volte */
   win;

   if (!win)
    var win = new Ext.Window({
         //title:Ext.get('page-title').dom.innerHTML
        renderTo:Ext.getBody()
        ,iconCls:'icon-bulb'
        ,width:420
        ,height:240
        ,title:winTitle
        ,border:false
        ,layout:'fit'
        ,items:[{
            // form as the only item in window
             xtype:'form'
            ,labelWidth:60
                ,html:desc
            ,frame:true
            ,items:[{
                // textfield
                 fieldLabel:desc
                ,xtype:'textfield'
                ,anchor:'-18'
                }]
        }]
        });

win.add({
            // form as the only item in window
             xtype:'form'
            ,labelWidth:60
                ,html:desc
            ,frame:true
            ,items:[{
                // textfield
                 fieldLabel:desc
                ,xtype:'textfield'
                ,anchor:'-18'
                }]});

    win.show();


}; 

Что не так с моим кодом? Большое спасибо.

1 Ответ

2 голосов
/ 24 мая 2010
win;

объявляет win как глобальный, затем

var win = ...

повторно объявляет его как локальную переменную при создании окна.Вместо этого win должен быть объявлен не глобально, но вне области, где живет этот код (или передан в него как функция arg).Затем просто удалите строку win; и ключевое слово var и убедитесь, что весь код ссылается на одну и ту же переменную.

Кроме того, если окно уже отрендерено, то вы добавляете в него новые компоненты.Вероятно, придется обновить win.doLayout() для обновления макета окна.

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