今天遇到了从后台返回数据给combox显示的问题,通过网络和朋友的帮助指导了算是明白了。有两种方式可以,
一种是ext本身解决方法:
给combox设置hiddenName:'XXX'和valueField:'XXX'这个两个值设置一致,在进行setValue(真实值)和setRowValue(显示值)的操作。
?
另一种方法就是对combox中的sevValue方法进行重载,代码如下
Ext.override(Ext.form.ComboBox,{
setValue : function(v, _text){
var text = v;
if(this.valueField){
var r = this.findRecord(this.valueField, v);
if(r){
text = r.data[this.displayField];
}else if(this.valueNotFoundText !== undefined){
text = this.valueNotFoundText;
}
}
if( arguments.length >= 2 )
text = _text;
this.lastSelectionText = text;
if(this.hiddenField){
this.hiddenField.value = v;
}
Ext.form.ComboBox.superclass.setValue.call(this, text);
this.value = v;
}
});
?注释:setValue(真实值,显示值);