0

我有具有内部网格组件的主窗口。当我在窗口中按下一个按钮时,其中一个网格组件会使用数据库中的数据进行更新。该部分运行良好,但是当我调整窗口组件的大小时,该网格组件不会调整大小。调用 setSource() 时,它看起来像固定宽度。

是否有一个 extjs 函数可以重绘/更新网格组件的大小或如何防止这种情况发生?

我使用来自 ext js 4 的这个组件 Ext.grid.property.Grid

这是主容器

var main_container = Ext.create('Ext.container.Container',
{
   xtype: 'container',
   id: "container_id",
   anchor: '100%',
   layout:'column',
   items:[
      column_1,
      column_2,
      column_3
   ]
})
4

1 回答 1

1

我不知道任何允许您动态调整列大小以适应其内容的布局,这是一项不平凡的任务(想象一下您将如何自己实现它)。您可以根据您对其中数据长度的期望为每列指定一个固定的百分比宽度,例如:

 items: [{
        title: 'Column 1',
        columnWidth: .25
    },{
        title: 'Column 2',
        columnWidth: .55
    },{
        title: 'Column 3',
        columnWidth: .20
    }],

您还可以为任何列指定固定宽度,这样剩余空间将由百分比宽度列共享。参考http://docs.sencha.com/ext-js/4-0/#!/api/Ext.layout.container.Column

否则,您必须在每次数据更新后测量每个单元格的宽度,以找出具有最大宽度的单元格并尝试根据该宽度调整列的大小(但仍要确保所有列的总宽度不超过容器宽度)。

于 2012-06-19T10:12:46.963 回答