如果您创建的网格没有列宽或flex属性,则列的默认值均为100px。
如果您再双击标题分隔符,则左侧的列会自动扩展为该列中最大数据项的大小。
有没有办法将某些列配置为自动拥有该行为?
答案 0 :(得分:9)
forceFit: true
将强制列填充所有剩余空间。
forceFit :Boolean指定true以获得列宽 在任何时候都重新调整比例。
每个列的初始配置宽度将调整为适合 网格宽度并防止水平滚动。如果列是稍后的 调整(手动或编程),网格中的其他列 将调整大小以适应网格宽度。
使用fixed:true配置的列将被省略 调整大小。
答案 1 :(得分:6)
所以我猜想sencha不再推荐使用forceFit,你应该尝试使用autoSize方法:
编辑:你有一个简短的例子,它适用于第一列:)
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()
});
我有同样的问题,希望它有所帮助!
答案 2 :(得分:1)
某些列可能非常宽,例如:描述文本或长名称。如果将字段宽度设置为auto,则某些列可能占用视图上的大量空间。在这种情况下,最大宽度限制应该是多少。 50 CHAR,100 CHAR?