Ext.override(Ext.form.ComboBox, {
setValue: function(v, fireSelect) { var text = v; if (this.valueField) { var r = this.findRecord(this.valueField, v); if (r) { text = r.data[this.displayField]; if (fireSelect) { this.fireEvent('select', this, r, this.store.indexOf(r)); } } else if (Ext.isDefined(this.valueNotFoundText)) { text = this.valueNotFoundText; } } this.lastSelectionText = text; if (this.hiddenField) { this.hiddenField.value = v; } Ext.form.ComboBox.superclass.setValue.call(this, text); this.value = v; return this; } }); 扩展的作者为Animal 调用setValue方法的同时,fireEvent("select",...),触发combo的select事件 重写后的方法有两个参数 v:combo的valueField值,比如combo的fields: [{ name: 'CATEGORYID' }, { name: 'TITLE'}] 传进来的参数应该为CATEGORYID的某一个值,而不是TITLE的某一个值。。。 fireSelect:bool类型的,即是否对setValue触发select事件 |
|