1

我的 3 个 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
  ],
4

3 回答 3

4

布局不是 GridPanel 的有效属性。

尝试使用:

viewConfig: { forceFit: true }

反而

于 2009-11-12T16:39:28.653 回答
2

我在论坛中搜索一种让我的网格自动调整大小的方法,但找不到解决方案,没有任何效果......然后我阅读了 Ext Js GridPanel 文档:“

网格需要滚动列的宽度和滚动行的高度。这些尺寸可以通过高度和宽度配置选项显式设置,也可以通过将网格用作容器的子项来隐式设置,该容器将有一个布局管理器提供其子项的大小(例如,网格的容器可以指定布局:'适合')。”

..所以我只是没有设置网格的布局,而是将网格的 PARENT 的布局设置为我想要的任何值(在我的情况下,父容器除了网格之外还包含其他东西,所以我设置了布局:'anchor',然后通过设置锚点:'100% 100%' 我让网格尽可能地扩展)。

现在我可以正常工作了:D yayyyy!

于 2011-04-08T09:14:20.160 回答
1

这是您必须设置的容器的布局,即:

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

适合布局意味着容器中只有一个项目,它应该扩展以占用所有可用空间。删除所有对宽度、自动宽度等的显式引用。

于 2009-11-12T20:36:01.933 回答