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 回答