今天遇到了从后台返回数据给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(真实值,显示值);
本文介绍了两种在ExtJS中实现ComboBox数据绑定的方法。一种是使用内置方法设置hiddenName和valueField;另一种是对setValue方法进行重载以实现自定义的数据绑定逻辑。
502

被折叠的 条评论
为什么被折叠?



