Как настроить макет, чтобы он "подходил" к существующей Ext.Panel?(.setLayout не работает) - PullRequest
2 голосов
/ 03 декабря 2010

Я определяю свой регионМатериалы здесь:

regionContent = new Ext.Panel({
    region: 'center',
    // layout: 'fit', //used to be static, needs to be set dynamically now
    margins: '-1 0 0 -6',
    autoScroll: true
});

Затем на странице, загружаемой через AJAX, я очищаю содержимое regionContent и добавляю новое содержимое. В настоящее время как мне также изменить его макет на "fit"?

Когда я пытаюсь использовать .setLayout('fit'), я получаю сообщение об ошибке layout.setContainer is not a function:

<script type="text/javascript">
    var start_info_panel = new Ext.Panel({
        padding: 10,
        width: 300,
        html: '<h1>Simple Text Page</h1><p>This is an example of a page with simple text.<p>'
    });
    replaceComponentContent2(regionContent, start_info_panel);

    function replaceComponentContent2(cmpParent, cmpContent) {
        clearExtjsComponent(cmpParent);
        cmpParent.add(cmpContent);
        cmpParent.setLayout('fit'); //error: "layout.setContainer is not a function"
        cmpParent.doLayout();
    }

    hideComponent(regionHelp);
</script>

1 Ответ

2 голосов
/ 03 декабря 2010

Похоже, вы используете BorderLayout в родительской панели, и эта ошибка может быть связана со следующим комментарием в функции .add () любого типа контейнера:

Предупреждение: контейнеры напрямуюУправляемый менеджером макета BorderLayout не может быть удален или добавлен.См. Примечания для BorderLayout для получения дополнительной информации.

Подробнее

Ext.Container .add () документы

Надеюсь, это поможет.

...