有的时候comboBox render的时候不好使,你改变了值但是显示还是上一次的值(再次双击才看到改变后的值)
renderGridValueObject : function(value, record, id, name) {
if (record) {
if (this.getValue()) {
if (this.getValue() == this.getRawValue()
&& this.isReset) { // 增加isReset判断 by gaojun
this.reset();
return value;
}
record.editing = true;
record.set(id, this.getValue());
record.set(name, this.getRawValue());
record.editing = false;
// record.dirty = false;
this.reset();
return record.get(name);
} else {
return value;
}
}
},
===========================================================================================
EditorEditFieldRenderer : function(combo,value,record,idField,nameField,code,name){
// 获得下拉框的数据集
var storeVal = combo.getStore();
var displayField = combo.displayField;
//选择的顺序号
var index = storeVal.find(code?code:'id', value);
//通过顺序号得到相应的record对象
var storeRecord = storeVal.getAt(index);
var displayText = "";
if (storeRecord == null) {
displayText = value;
} else {
displayText = storeRecord.get(displayField);
}
// 修改record值 by gaojun
if(record.get(nameField) != undefined && record.get(nameField) != '' && combo.getRawValue() != '') {
record.editing = true;
record.set(idField,combo.inputValue || combo.getValue());
record.set(nameField,combo.getRawValue());
record.editing = false;
record.dirty = false;
combo.reset();
}
combo = null;
return displayText;
},我在项目中一般重写renderer方法 即上面第一种方法可以解决上面问题