如何在 extJs3 中动态更改 fieldLabel

Posted

技术标签:

【中文标题】如何在 extJs3 中动态更改 fieldLabel【英文标题】:How to dynamically change a fieldLabel in extJs3 【发布时间】:2016-02-25 11:19:21 【问题描述】:

表单字段似乎没有 fieldLabel 的更新方法,只能设置为构造函数属性。


    xtype:          'textfield',
    fieldLabel:     'Field Label Text',
    width:          465,
    name:           'field_1',
    id:             'field_1',
    labelSeparator: '',
    allowBlank:     false,
    value:          ''

我已经设法改变它:

var field = Ext.getCmp("field_1");
field.el.parent().parent().dom.children[0].innerhtml = "new Label"

但感觉有点hack-ish。

有没有合适的更换标签的方法?


注意:我知道 extJs3 是古老的历史,但我正在做的项目仍在使用这个版本。

【问题讨论】:

【参考方案1】:

只需重写 Field 类以添加如下所示的 setFieldLabel 方法,然后使用

fieldObj.setFieldLabel('New Label');

在您的应用程序中的任何位置。

Ext.override(Ext.form.Field, 
    setFieldLabel : function(text) 
        if (this.rendered) 
            this.el.up('.x-form-item', 10, true).child('.x-form-item-label').update(text);
        
        this.fieldLabel = text;
    
);

干杯!

【讨论】:

以上是关于如何在 extJs3 中动态更改 fieldLabel的主要内容,如果未能解决你的问题,请参考以下文章

如何在 js (extjs3.3) 文件中包含 jquery?

更改网格 extjs3 中的记录边框颜色

ExtJS 动态更改组合框项的值

带有动态存储的 Extjs3 图表

ExtJS3 中的图表

extjs 3.2 动态添加垂直滚动条