如果您创建一个没有列宽或flex属性的网格,则每列的默认值为100px。extjs4如何自动将网格列的宽度设置为内容的最大宽度?
如果您然后双击标题分隔符,则左边的列自动展开为该列中最大数据项的大小。
有什么办法可以配置一些列自动产生该行为?
如果您创建一个没有列宽或flex属性的网格,则每列的默认值为100px。extjs4如何自动将网格列的宽度设置为内容的最大宽度?
如果您然后双击标题分隔符,则左边的列自动展开为该列中最大数据项的大小。
有什么办法可以配置一些列自动产生该行为?
forceFit: true
在您的GridView配置将强制列填补所有剩余的空间。
forceFit:布尔指定真有列宽度在任何时候都 再匀称。
每列的初始配置宽度将调整为适合网格宽度并防止水平滚动。如果列以后调整大小(手动或编程) ,网格 中的其他列将调整大小以适合网格宽度。
配置为fixed:true的列从调整后的 中省略。
某些列可能非常宽,例如:描述文本或长名称。如果将字段宽度设置为auto,则某些列可能占用视图中的重要空间。这种情况下应该是最大宽度限制。 50 CHAR,100 CHAR?
所以我想forceFit由煎茶不再推荐,你应该尝试使用自动调整大小的方法:
编辑:你去那里用简单的例子,它可以在第一列:)
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()
});
我有同样的问题,希望它有帮助!
这不是flex属性实现的吗?为什么不能使用它?你可以添加网格定义的代码到你的文章吗? – Bryan