如何在extjs 6.2.0中按标题(标题)设置列宽?
我想根据标题内容自动设置列宽
答案 0 :(得分:0)
列宽必须为空:
var c = Ext.create('Ext.grid.column.Column', { text: 'Nam12131231313e', dataIndex: 'name', width: null});
答案 1 :(得分:0)
如您所见,我创建了一个getColumnWidth()函数,它将以网格列文本为参数,然后返回列宽。
您还可以根据需要调整getColumnWidth()中的数字。
Sencha小提琴链接https://fiddle.sencha.com/#view/editor&fiddle/2l1r
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create('Ext.window.Window',{
title:'Grid Auto Fit Column Width Based on Header Text',
width:600,
height:400,
autoShow:true,
layout:'fit',
items:[{
xtype:'grid',
columns:[
{
text:'id',
width:this.getColumnWidth('id'),
},{
text:'Name',
width:this.getColumnWidth('Name'),
},{
text:'ThisWillFitItsData',
width:this.getColumnWidth('ThisWillFitItsData')
},{
text:'LetsTryMoreLongerText',
width:this.getColumnWidth('LetsTryMoreLongerText')
},{
text:'Fixed',
width:60
}
]
}]
});
},
getColumnWidth:function(text){
let columnWidth = (text.length * 7) + 35 // giving 7 pixles for each letter in the text
//Optional This part is used to set a maximum column width in case there is too many charachter in the text
if(columnWidth>400){
columnWidth = 400
}
return columnWidth;
}
});