如何在ExtJs columnLayout中设置运行时的columWidth配置?

时间:2015-06-29 12:49:01

标签: extjs extjs5

我有一个面板,其中包含一些项目,它的初始布局是列,每个项目都有columnWidth: 1但现在在按钮点击事件上我想将每个项目的columnWidth设置为0.5。应该是容器的50%。

我试过了:

{
    xtype: 'panel',
    fieldLabel: 'Name',
    vertical: true,
    layout: 'column',
    items: [
        {
        xtype: 'button', 
        id:'btn1', 
        width: 80,
        text: 'Button1', 
        columnWidth:1
        },{
        xtype: 'button', 
        id:'btn2', 
        width: 80, 
        text: 'Button2', 
        columnWidth:.2
        }
    ]
}

按钮点击代码:

Ext.getCmp('btn2').setConfig({columnWidth: '1'});

但这不起作用请帮助我。

1 个答案:

答案 0 :(得分:0)

首先,您无法columnWidth: 1。来自documentation

  

columnWidth属性始终按百分比计算并且必须   是小于0且小于1 的小数值(例如.25)。

要动态更新columnWidth,请直接在项目上设置其值,然后更新整个布局:

handler: function() {
    Ext.getCmp('btn2').columnWidth = 0.5;
    Ext.getCmp('panel').updateLayout();
}

完整示例:https://fiddle.sencha.com/#fiddle/pjm