我有一个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.
我该怎么做?感谢
答案 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)。
您想要使用的是fieldLabel
和setFieldLabel
?
答案 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()
:)