Extjs - 更改复选框标签

时间:2013-06-11 08:44:48

标签: extjs checkbox extjs4

我有一个xtype“复选框”,我希望通过动态更改boxlabel

{
    xtype:'checkbox',
    id: 'abc',
    checked: false,
    uncheckedValue: '0',
    inputValue: 1,
    boxLabel: 'change',
    name:'abc'
}

我使用

Ext.getCmp('abc').setBoxLabel('not working'); // it's not working

Ext.getCmp('abc').update('loss checkbox'); // it's working but checkbox's disappear.

我该怎么做?感谢

3 个答案:

答案 0 :(得分:3)

在Ext JS 4.2+中使用setBoxLabel()

在Ext JS 4.1+中我发现这个解决方法可以提供帮助:

Ext.getCmp('abc').getEl().down('label.x-form-cb-label').update('New Label')

答案 1 :(得分:1)

getBoxLabel应该有效(请参阅此jsFiddle)。

您想要使用的是fieldLabelsetFieldLabel

答案 2 :(得分:0)

更清洁的方法(IMO)

对于ExtJs 4.1.1(这是在框架的更高版本中正式添加的)

我发现Condor https://www.sencha.com/forum/showthread.php?71968-Set-Checkbox-boxLabel-dynamically推荐的覆盖是最好的选择,因为即使没有渲染复选框,这也不适用于DrakES解决方案中的情况。

Ext.override(Ext.form.Checkbox, {
    setBoxLabel: function(boxLabel){
        this.boxLabel = boxLabel;
        if(this.rendered){
            //NOTICE I CHANGED THIS LINE FROM THE ONE IN THE ORIGINAL SENCHA FORUM
            this.getEl().down('label.x-form-cb-label').update('New Label');
        }
    }
});

现在您可以使用.setBoxLabel():)