如何在现有的Ext.Panel上设置布局“适合”? (.setLayout不起作用)

时间:2010-12-03 14:39:01

标签: layout extjs

我在这里定义了我的regionContent:

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的内容并向其添加新内容。目前,如何将其布局更改为“适合”?

当我尝试使用.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 个答案:

答案 0 :(得分:2)

您似乎在父面板中使用BorderLayout,并且此错误可能与任何容器类型的.add()函数中的以下注释有关:

  

警告:BorderLayout布局管理器直接管理的容器可能   不被删除或添加。有关详细信息,请参阅BorderLayout的注释。

更多信息

Ext.Container .add() docs

希望这有帮助。