我试过这个:
Ext.override(Ext.form.Field, {
setFieldLabel: function(text) {
if (this.rendered) {
var labelSeparator = this.labelSeparator;
if (typeof labelSeparator == 'undefined') {
if (this.ownerCt && this.ownerCt.layout && typeof
this.ownerCt.layout.labelSeparator != 'undefined')
labelSeparator = this.ownerCt.layout.labelSeparator;
else
labelSeparator = '';
}
var formItem = this.el.up('.x-form-item', 10);
if (formItem) {
var label = formItem.child('.x-form-item-label');
if (label)
label.update(text + labelSeparator);
}
} else
this.fieldLabel = text;
}
})
但它只发射一次。 我有一个formpanel(表单a),它允许你编辑一组数据,那组数据将是另一种形式的fieldLabel(表单b)。开始时,当我从表单a“编辑”fieldLabel时,它工作,(表单b的fieldLabel被更改),但是从按钮(ei创建按钮)打开表单b,并编辑fieldLabel(在文本字段中输入)再次形成一个,形式b中的fieldLabel不会改变。
formItem = this.el.up('。x-form-item',10);变为空。 如何解决这个问题?
感谢。
答案 0 :(得分:0)
解:
Ext.override(Ext.form.Field, {
setFieldLabel: function(text) {
if (this.rendered) {
var labelSeparator = this.labelSeparator;
if (typeof labelSeparator == 'undefined') {
if (this.ownerCt && this.ownerCt.layout && typeof this.ownerCt.layout.labelSeparator != 'undefined')
labelSeparator = this.ownerCt.layout.labelSeparator;
else
labelSeparator = '';
}
var formItem = this.el.up('.x-form-item', 10);
if (formItem) {
var label = formItem.child('.x-form-item-label');
if (label)
label.update(text + labelSeparator);
} else {
this.labelEl.update(text);
}
} else {
this.fieldLabel = text;
}
}
});
答案 1 :(得分:0)
只需调用setText()方法即可。更简单。