Extjs 3.3.1具有布局拟合的FieldSet和其中的网格不会在窗口大小调整时调整网格大小

时间:2012-04-19 06:07:17

标签: javascript extjs extjs3

var colModel = new Ext.grid.ColumnModel({
      columns: [ columns here...]
})

var grid = new Ext.Ext.grid.GridPanel({
   store: store,
   loadMask: true,
   autoExpandColumn: 'itemDescription',
   stripeRows: true,
   colModel: colModel
})

var form = new Ext.FormPanel({
   labelWidth: 150,
   bodyStyle: 'padding:2px 5px;',
   autoScroll: true,
   items:[
     new Ext.form.FieldSet({
       layout: 'fit',
       collapsible: true,
       height:300,
       items: [
            grid 
       ]
     }
   ]
})

一旦窗口调整大小,网格不会改变其宽度... 任何想法???

2 个答案:

答案 0 :(得分:4)

您的Grid会根据FieldSet的{​​{1}}调整大小。由于layout: 'fit'没有布局设置,因此会自动使用FormPanellayout: 'form'将充当普通 FieldSet,因此需要配置为自行调整大小。这可以使用Form Field

anchor属性来完成
FormLayout

这会告诉var form = new Ext.FormPanel({ labelWidth: 150, bodyStyle: 'padding:2px 5px;', autoScroll: true, items:[ new Ext.form.FieldSet({ layout: 'fit', anchor: '-0', collapsible: true, height:300, items: [ grid ] } ] }); 始终与FieldSet的右边缘保持0像素。

答案 1 :(得分:0)

试试这个......

var colModel = new Ext.grid.ColumnModel({
  columns: [ columns here...]
})

var grid = new Ext.Ext.grid.GridPanel({
store: store,
loadMask: true, 
autoExpandColumn: 'itemDescription',
stripeRows: true,
colModel: colModel
})

var form = new Ext.FormPanel({
labelWidth: 150,
bodyStyle: 'padding:2px 5px;',
autoScroll: true,
items : {
   xtype : 'fieldset',
   title : 'Give proper Title',
   defaults: {
      anchor: '100%'
   },
   layout: 'anchor',
   collapsible: true,
   items: grid
}
});