Extjs gridpanel не расширяется по горизонтали внутри tabPanel - PullRequest
1 голос
/ 12 ноября 2009

Каждая из моих трех сеточных панелей Extjs не расширяется по горизонтали в пределах tabPanel.

Свойства каждой сетки:

  id: grid_id,
  ds: ds,
  cm: cm,
  loadMask:      true,
  view:          grouping_view,
  plugins:       [expander, filters],
  stateId:       which + '-grid-stateId',
  stateful:      true,
  stateEvents:   ['datachanged', 'columnresize', 'columnmove', 'sortchange', 'columnvisible', 'columnsort', 'hide', 'show', 'expand', 'collapse'],
  selModel:      checkbox,
  // height:        400,
  width:         GRID_WIDTH,
  defaults:      {autoHeight: true},
  autoHeight:    true,
  collapsible:   false,
  animCollapse:  false,
  layout:        'fit',

Свойства TabPanel:

  id:         'tab_panel',
  renderTo:   'tabs',
  activeTab:  0,
  enableTabScroll:  true,
  defaults:   {autoScroll:true, authHeight:true},
  plugins:    new Ext.ux.TabCloseMenu(),
  width:      GRID_WIDTH + 2,
  autoHeight: true,
  items: [       // put items in tabpanel like this. adding via method call forces them to render/load befire user clicks on them
     owned_grid,
     managed_grid,
     subscribed_grid
  ],

Ответы [ 3 ]

4 голосов
/ 12 ноября 2009

Макет не является допустимым свойством для GridPanel.

Попробуйте использовать:

viewConfig: { forceFit: true }

вместо

2 голосов
/ 08 апреля 2011

Я искал на форумах способ автоматического изменения размера моей сетки, но не смог найти решение, ничего не помогло ... и затем я прочитал документацию Ext Js GridPanel: "

Сетка требует ширины, в которой прокрутите его столбцы и высоту в чтобы прокрутить его строки. Эти Размеры могут быть установлены явно через высоту и параметры конфигурации ширины или неявно устанавливается с помощью сетки в качестве дочерний элемент контейнера, который будет иметь менеджер макета предоставить определение размеров дочерних элементов (например, Контейнер сетки может указывать расположение: 'подходит') "

.

.. поэтому я просто установил не макет сетки, а макет PARENT сетки на любое значение, которое я хочу (в моем случае родительский контейнер содержит другие вещи, кроме только сетки, поэтому я устанавливаю макет: 'anchor' а затем, установив якорь: «100% 100%», я увеличиваю сетку настолько, насколько это возможно).

и теперь у меня ЭТО РАБОТАЕТ: D yayyyy!

1 голос
/ 12 ноября 2009

Это макет контейнера, который вы должны установить, то есть:

var tp = new Ext.TabPanel({
    items: [{
        title: 'First tab',
        layout: 'fit',
        items: new Ext.GridPanel({ title: "Grid panel" })
    },{
        title: 'Second tab'
    }]
});

Подгонка макетов означает, что в контейнере есть только один элемент, и он должен расширяться, чтобы занять все доступное пространство. Удалить все явные ссылки на ширину, автоширину и т. Д.

...