我在extjs中动态加载网格。正如您在下面看到的,“已创建”列不够宽,无法在其中显示整个文本。我想设置每列的宽度,以便完全显示其文本。
这可能吗?有什么建议吗?
感谢您的帮助。
答案 0 :(得分:0)
在列配置中使用参数width: ...
。就这么简单。我没有看到你的代码,所以我猜。
然而,看起来你有更多的垂直空间 - >也许2个行中的中断日期(使用模板)将是解决方案,或者您可以为具有较小字母的单元格设置特殊的css类以便适合。
修改强> 在你的情况下,它可能是ColumnModel中的defaultWith的组合(至少得到120以适合你的日期,如果更多列网格将调整)和setColumnWith()动态地基于数据长度和列数 - 逻辑由你决定
答案 1 :(得分:0)
谢谢bensiu,我实现了登录。但是,我不能说这是理想的解决方案,但它解决了我的目的。
首先,我浏览数据并找到该列中最长的字符串(包括该列的标题名称)。
// Store the longest string for each column in columns[col].maxstring
// Define a hidden label
{
xtype: 'label',
id: 'lblTab',
hidden: true
}
var lblTab = Ext.getCmp('lblTab');
var hiddenField = Ext.util.TextMetrics.createInstance(Ext.getCmp('lblTab').el);
var widthValue = 0;
// Iterate through each columns to set its maximum width
for(var col in columns) {
// find width of string
widthValue = hiddenField.getWidth(columns[col].maxstring);
// set column width
colModel.setColumnWidth(columns[col].index, widthValue + 20, false);
}
我希望这有助于某人。