当窗口最大化时,extjs 3.4列未完全展开

时间:2015-01-23 15:51:07

标签: javascript extjs

我正在创建一个使用多个Panel组件的EXT应用程序。其中一个是GridPanel,其中包含一个Column。在我的GridPanel我已将autoExpandColumn配置设置为此Column,因为我的Panel个组件之一是可折叠的,因此在折叠其他Panel组件时展开,Column也扩展。当Window处于正常尺寸且折叠Panel折叠时,Column会展开以占据GridPanel的整个宽度。但是,当Window最大化时,列不会展开,而是保持与窗口最大化时相同的宽度,并且折叠Panel不会折叠(这比Window处于正常大小)。 Window有一个BorderLayout,这就是前两个Panel组件使用region属性的原因。

以下是相关代码:

配置Window

                title: 'Engineering Works',
                width: 915,
                height: 550,
//                minHeight: 550,
//                minWidth: 915,
                resizable: false,
                padding: 10,
                shim:false,
//                monitorResize: true,
                confirmClose: true,
                animCollapse:false,
                constrainHeader:true,
                style: {
                    margin: "10px"
                },
                layout: "border",
                items: [filterFormPanel,centrePanel]

可折叠面板:

var filterFormPanel = new Ext.FormPanel({
    region: "west",
    monitorResize:true,
    width: "38%",
    title: "Filter",
    collapsible: true,
    id: windowId + "filter",
    items: [stationsPanel, datesPanel, daysPanel, impactPanel, searchButton]
});

centrePanel(包含另外两个面板,其中第一个(searchResultsPanel)是上面解释的GridPanel

   var centrePanel = new Ext.Panel({
        region: "center",
        layout:'border',
        monitorResize:true,
        items: [searchResultsPanel,individualResultPanel]
    });

searchResultsPanel(包含一个rowclick侦听器,我省略了它,因为它很长并且与此问题无关):

    var searchResultsPanel = new Ext.grid.GridPanel({
        title: "All Results",
        id: windowId + "allresults",
        border: false,
        monitorResize:true,
        autoScroll: true,
        region:'center',
        forceFit: true,
        colModel:  myColumnModel,
        autoExpandColumn: windowId + "summarycolumn",
        store: mystore
    });

值得指出的是GridPanel本身确实在任何时候都能正常扩展,只有Column里面的GridPanel才会占用Window filterFormPanel的全宽度最大化并且width已折叠。

我尝试过但没有成功:

  1. 将searchResultsPanel置于其自己的父Panel中,并根据this问题(以及其他一些问题)为其提供适合的布局。在任何情况下,我都意识到这可能没有实际意义,因为这涉及GridPanel没有扩展,这是我没有的问题。
  2. 在折叠和展开可折叠Column时,将GridPanel的{​​{1}}配置设置为等于Panel的宽度。这并没有解决我的问题,并导致右侧Panel组件(centrePanel内部)在展开折叠的Panel时具有水平滚动条。

1 个答案:

答案 0 :(得分:0)

我通过移除autoExpandColumn中的GridPanel配置并使用forceFit围绕viewConfig配置解决了这个问题,因为它是GridView组件的配置。所以我的GridPanel现在看起来像这样(减去听众):

var searchResultsPanel = new Ext.grid.GridPanel({
    title: "All Results",
    id: windowId + "allresults",
    border: false,
    monitorResize:true,
    autoScroll: true,
    region:'center',
    colModel:  myColumnModel,
    viewConfig: {
        forceFit: true
    },
    store: mystore
});