测试成功的EXT版本是ext-3.2.0
ext-3.2.0的 RadioGroup 和 CheckboxGroup不能动态赋值的主要原因就是:
RadioGroup 和 CheckboxGroup 类型都是FormField,而Ext.form.BasicForm的findField 方法却只做了如下判断:
个人很不理解EXT的开发人员为什么会范这种错误!
以下代码是我对Ext.form.BasicForm的findField 方法的复写,在使用过程中没有不良反映
ext-3.2.0的 RadioGroup 和 CheckboxGroup不能动态赋值的主要原因就是:
RadioGroup 和 CheckboxGroup 类型都是FormField,而Ext.form.BasicForm的findField 方法却只做了如下判断:
if (f.isFormField) {
if (f.dataIndex == id || f.id == id || f.getName() == id) {
field = f;
return false;
} else if (f.isComposite) {
return f.items.each(findMatchingField);
}
}
个人很不理解EXT的开发人员为什么会范这种错误!
以下代码是我对Ext.form.BasicForm的findField 方法的复写,在使用过程中没有不良反映
Ext.override(Ext.form.BasicForm, {
findField : function(id) {
var field = this.items.get(id);
if (!Ext.isObject(field)) {
var findMatchingField = function(f) {
if (f.isFormField) {
if (f.isXType('radiogroup') || f.isXType('checkboxgroup')) {
return f.items.each(findMatchingField);
} else if (f.dataIndex == id || f.id == id || f.getName() == id) {
field = f;
return false;
} else if (f.isComposite) {
return f.items.each(findMatchingField);
}
}
};
this.items.each(findMatchingField);
}
return field || null;
}
});