Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Проблемы с Viewport (https://javascript.ru/forum/extjs/12488-problemy-s-viewport.html)

duk 20.10.2010 11:22

Проблемы с Viewport
 
Всем привет.

Не очень понятно для меня работает вьюпорт.

Если так написано, то все работает, все хорошо:
Ext.onReady(function(){
.........
var mainviewport= new Ext.Viewport({
layout: 'border',
items: [headpanel,maincont,footpanel]
});

});

А если вот так, то выводится только основная панель:

Ext.onReady(function(){
.........
var mainviewport= new Ext.Viewport({
layout: 'border',
items: [maincont]
});
mainviewport.add(headpanel);
mainviewport.add(footpanel);
mainviewport.doLayout();
});

В чем может быть причина? В какую сторону вообще копать? Что делаю неправильно?

cmygeHm 20.10.2010 12:34

А какие-то ошибки пишет в консоли? в Firebug'е?

VKS 20.10.2010 13:24

Нельзя изменить layout viewporta после того как он был отрендерен

Правильно будет делать это например таким образом:
Ext.onReady(function(){
    viewport = new Ext.Viewport({
        autoshow:true,
        layout: 'border',
        defaults: {
            activeItem: 0,
        },
        items: [
            {
                region: 'west',
                split:true
            },{..},{..}
    ]
    });
    
    west = viewport.getComponent(0);
    
    west.add(new Ext.DragPanel({
        collapsible: true,
        title: 'Navigation',
        width: 200,
        }
    ));
    west.setWidth(200);
    west.doLayout();
    
    viewport.syncSize();
});

Kolyaj 20.10.2010 13:40

Цитата:

Сообщение от VKS
Нельзя изменить layout viewporta после того как он был отрендерен

А где он меняется?

VKS 20.10.2010 14:45

Вы динамически добавляете регионы в viewport?

duk 20.10.2010 14:50

спасибо за ответ, я тоже кстати нашел этот код.

duk 20.10.2010 14:51

да, хочу динамически менять вид страницы без ее перезагрузки, просто меняя панели во вьюпорте

mycoding 20.10.2010 15:13

А можно просто задать все панели сразу, а потом не нужные делать не видимыми. С кнопками в меню это срабатывает.
Просто параметр hidden:true ставить.

duk 20.10.2010 16:01

то есть будет много центральных панелей и только одна из них - видимая?

Kolyaj 20.10.2010 16:10

Тогда уж лучше сделать одну центральную панель с layout: 'card' и в ней менять другие панели.


Часовой пояс GMT +3, время: 15:55.