2015-01-23 2 views
0

Я создаю приложение EXT, которое использует несколько компонентов Panel. Один из них - GridPanel, содержащий один Column. В моем GridPanel я установил конфигурацию autoExpandColumn на этот Column, потому что один из моих компонентов Panel сложен, поэтому, когда он сложен, другие компоненты Panel расширяются, а также расширяется Column. Когда Window имеет нормальный размер и сбрасывается складной Panel, то Column расширяется, чтобы охватить всю ширину GridPanel. Однако, когда максимизируется Window, столбец не расширяется, но остается той же ширины, что и при максимальном увеличении окна, а сбрасываемый Panel не был свернут (это больше, чем когда Window имеет нормальный размер). Window имеет BorderLayout, поэтому первые два компонента Panel используют свойство region.Экземпляр extjs 3.4 не полностью расширяется при максимальном увеличении окна

Вот соответствующий код:

конфигурации для 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 рухнул.

Я пытался, но безуспешно:

  1. Ввод searchResultsPanel внутри своей собственной родительской панели и придание ей расположения приступа, согласно this вопросу (и некоторым другим). В любом случае, я понял, что это, вероятно, спорный вопрос, потому что это касается GridPanel не расширяется, проблема, которую я не имею.
  2. Конфигурация width конфигурации Column должна быть равна ширине GridPanel, когда складной Panel сложен и расширен. Это не решило мою проблему и привело к тому, что компоненты Panel справа (внутри centrePanel) имели горизонтальные полосы прокрутки при развалом Panel.
+0

Я помню еще раз в 3.4 дня, ExtJS имеет много проблем с обновлением макета автоматически. Возможно, вы могли бы найти решение, заставив GridView (в боковой панели) переустановить. Я надеюсь, что это поможет – gevik

+0

К сожалению, я не использую компонент GridView. – user1849060

+0

GridView в компоненте View в GridPanel. Этот «Просмотр» автоматически создается для вас с помощью GridPanel – gevik

ответ

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 
}); 
Смежные вопросы