extjs4如何自动将网格列宽设置为内容的最大宽度?

extjs4如何自动将网格列宽设置为内容的最大宽度?,extjs,Extjs,如果创建的网格没有列宽或flex属性,则每个列的默认值为100px 如果双击标题分隔符,左侧的列将自动扩展为该列中最大数据项的大小 有没有办法将某些列配置为自动具有该行为?forceFit:true在您的GridView配置中将强制列填充所有剩余空间 forceFit:布尔值指定true以获得列宽 始终按比例重新分配 每个列的初始配置宽度将进行调整以适应 调整网格宽度并防止水平滚动。如果列在后面 调整网格中其他列的大小(手动或编程) 将调整大小以适应网格宽度 配置为fixed:true的列将被忽

如果创建的网格没有列宽或flex属性,则每个列的默认值为100px

如果双击标题分隔符,左侧的列将自动扩展为该列中最大数据项的大小


有没有办法将某些列配置为自动具有该行为?

forceFit:true
在您的GridView配置中将强制列填充所有剩余空间

forceFit:布尔值指定true以获得列宽 始终按比例重新分配

每个列的初始配置宽度将进行调整以适应 调整网格宽度并防止水平滚动。如果列在后面 调整网格中其他列的大小(手动或编程) 将调整大小以适应网格宽度

配置为fixed:true的列将被忽略 调整大小


有些列可能很宽,例如:描述文本或长名称。如果将“字段宽度”设置为“自动”,则某些列可能会占用视图上的大量空间。在这种情况下,最大宽度限制应该是多少。50个字符,100个字符?

所以我猜sencha不再推荐forceFit,您应该尝试使用自动调整大小的方法:
编辑:下面是一个简单的示例,它在第一列中起作用:)


我也有同样的问题,希望能有帮助

这不是flex属性实现的功能吗?为什么不能用呢?你能为你的帖子添加网格定义的代码吗?
Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [
        { text: 'Name',  dataIndex: 'name',  width: 150, autoSizeColumn: true },
        { text: 'Email', dataIndex: 'email', width: 150, autoSizeColumn: true, minWidth: 150 },
        { text: 'Phone', dataIndex: 'phone', width: 150 }
    ],
    viewConfig: {
        listeners: {
            refresh: function(dataview) {
                dataview.panel.columns[0].autoSize();//works on the first colum
            }
        }
    },
    width: 450,
    renderTo: Ext.getBody()
});