3

我有一个 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.

我怎样才能做到这一点?谢谢

4

3 回答 3

4

在 Ext JS 4.2+ 中使用setBoxLabel()

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

Ext.getCmp('abc').getEl().down('label.x-form-cb-label').update('New Label')
于 2013-06-11T09:20:51.937 回答
1

getBoxLabel应该工作(见这个jsFiddle)。

也许你想要使用的是fieldLabeland setFieldLabel

于 2013-06-11T09:06:39.503 回答
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():)

于 2015-06-10T15:29:09.143 回答