[英]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.