1

私の 3 つの Extjs gridpanel はそれぞれ、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

Layout は GridPanel の有効なプロパティではありません。

使用してみてください:

viewConfig: { forceFit: true }

代わりは

于 2009-11-12T16:39:28.653 に答える
2

グリッドのサイズを自動的に変更する方法をフォーラムで検索していましたが、解決策が見つからず、何も機能しませんでした...そして、Ext Js GridPanel のドキュメントを読みました:"

グリッドには、列をスクロールするための幅と、行をスクロールするための高さが必要です。これらの寸法は、高さと幅の構成オプションを使用して明示的に設定するか、グリッドをコンテナの子アイテムとして使用して暗黙的に設定することができます。これにより、レイアウト マネージャーが子アイテムのサイズを指定します (たとえば、グリッドのコンテナは、レイアウトを指定:'fit')"

..だから、グリッドのレイアウトではなく、グリッドの PARENT のレイアウトを任意の値に設定するだけです (私の場合、親コンテナーはグリッド以外のものを保持するため、レイアウト: 'アンカー' を設定し、次にアンカーの設定: '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'
    }]
});

フィット レイアウトとは、コンテナー内にアイテムが1 つしかないことを意味し、使用可能なすべてのスペースを占めるように拡張する必要があります。width、autoWidth などへの明示的な参照をすべて削除します。

于 2009-11-12T20:36:01.933 に答える