2

チェックボックスに問題があります。したがって、これらのチェックボックスは列にあり、長いラベルはチェックボックスの下に折り返されます。列幅を最長のラベルに設定する解決策はありますか? 動的幅でなければなりません。手伝って頂けますか?

4

1 に答える 1

2

これは、すべてのラベルを測定し、最も広いラベルの幅をそれらすべてに適用するために使用できるものですhttp://jsfiddle.net/Wr7Wr/1/

Ext.define('DynamicLabelFormPanel', {
    extend: 'Ext.form.Panel',

    initComponent: function() {
        // Need to create a hidden field to measure the text
        var field = new Ext.form.field.Text({fieldLabel: 'Testing', value: 'whateves', renderTo: Ext.getBody(), hidden: true});
        var metrics = new Ext.util.TextMetrics(field.labelEl);
        var widths = Ext.Array.map(this.items, function(item) {
            // Need to acount for the : 
            return metrics.getWidth(item.fieldLabel + ":");
        });
        var maxWidth = Math.max.apply(Math, widths);
        for (var i = 0; i < this.items.length; i++) {
            this.items[i].labelWidth = maxWidth;
        }
        this.callParent();
    }
}

これはおそらくプラグインとしてより良いでしょうが、何をする必要があるかを示しています

于 2013-01-29T17:49:14.050 に答える