如何在调用 setSource() 函数后重绘或更新 extjs 网格的宽度/高度

How to redraw or update width/height of extjs grid after setSource() function is called?

本文关键字:网格 extjs 更新 高度 调用 setSource 函数      更新时间:2023-09-26

我有一个主窗口,里面有网格组件。当我按下窗口中的按钮时,其中一个网格组件会使用数据库中的数据进行更新。该部分运行良好,但是当我调整窗口组件的大小时,此网格组件不会调整大小。当调用 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
   ]
})

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

 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

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