![](/img/trans.png)
[英]how to make combo box width variable according to longest option in extjs
[英]set combo box width to auto fit it's longest field option text in ExtJS
如何设置组合框宽度以自动适应它最长的字段选项文本?
说,我有宽度为300的组合框字段。但是如果从该组合中有一个字段选项有一些长文本 - 大于300px。
我想让我的组合框宽度自动适合那个长字段选项,以便在没有任何剪切的情况下在Combo中查看整个选定的字段选项。
实际上,我忘了有配置在extjs中为组合做同样的事情。
我认为在ExtJS 4中,组合宽度被设置为自动适合最长字段选项。
我不想通过动态添加代码来自动调整大小来实现它。
无需添加任何手动代码..不要给宽度..
成长:真的,
growToLongestValue:true
在ExtJS 6中为我工作..
Ext.create('Ext.form.ComboBox', {
fieldLabel : 'Field',
store : ['a', 'b', 'c', 'Long long long long long long long long'],
grow : true,
growToLongestValue : true,
renderTo : Ext.getBody()
});
检查Sencha Fiddle https://fiddle.sencha.com/#fiddle/12jc
你必须手动完成; 它在Ext代码中不可用。 像这样的东西:
listeners: {
afterrender: function(box) {
var width = 0,
metrics = new Ext.util.TextMetrics();
box.getStore().each(function(rec) {
var recWidth = textMetrics.getWidth(rec.get(box.displayField));
width = Math.max(width,recWidth);
});
box.setWidth(width);
}
}
没有任何测试或保修,但您应该知道如何解决它。
可以在文档中找到如何使用TextMetrics的详细示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.