让 ext-3.2.0 的 RadioGroup 和 CheckboxGroup 动态 赋值

测试成功的EXT版本是ext-3.2.0

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;
}
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值