【问题标题】:Extjs - change checkbox labelExtjs - 更改复选框标签
【发布时间】:2013-06-07 01:17:32
【问题描述】:

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

我该怎么做?谢谢

【问题讨论】:

    标签: extjs checkbox extjs4


    【解决方案1】:

    在 Ext JS 4.2+ 中使用 setBoxLabel()

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

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

    【讨论】:

    • 在呈现复选框之前更改标签怎么样
    【解决方案2】:

    getBoxLabel 应该可以正常工作(请参阅此jsFiddle)。

    也许您想使用的是fieldLabelsetFieldLabel

    【讨论】:

      【解决方案3】:

      更清洁的方法 (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() :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-05
        • 1970-01-01
        • 2020-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        相关资源
        最近更新 更多