簡體   English   中英

設置組合框寬度以自動調整它在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM