日期:2014-05-16  浏览次数:20387 次

Extjs2.2 RadioGroup的声明对象和getValue、SetValue方法的用法

用过的朋友都知道extjs的RadioGroup组件的setValue和SetValue貌似有bug。是不成功的

在此我来解决一下这个问题:

1、声明RadioGroup的代码:

var radiogroup= new Ext.form.RadioGroup({
                fieldLabel : "性别",
                items : [{
                            boxLabel : '男',
                            inputValue : '1',
                            checked : true,
                            name : "radSex"
                        }, {
                            boxLabel : '女,
                            name : "radSex",
                            inputValue : '2'
                        }]
    });
2、重写SetValue和GetValue两个方法从而得到可用的方法

Ext.override(Ext.form.RadioGroup, {   
    getValue: function(){   
        var v;   
        if (this.rendered) {   
            this.items.each(function(item){   
                if (!item.getValue())    
                    return true;   
                v = item.getRawValue();   
                return false;   
            });   
        }   
        else {   
            for (var k in this.items) {   
                if (this.items[k].checked) {   
                    v = this.items[k].inputValue;   
                    break;   
                }   
            }   
        }   
        return v;   
    },   
    setValue: function(v){   
        if (this.rendered)    
            this.items.each(function(item){   
                item.setValue(item.getRawValue() == v);   
            });   
        else {   
            for (var k in this.items) {   
                this.items[k].checked = this.items[k].inputValue == v;   
            }   
        }   
    }   
});
3、调用方法完成设置:

radiogroup.getValue() //获取的是inputValue的值
radiogroup.setValue(“1”);//设置值选中