1.combobox定义如下

 
mu_project_ds_add = new Ext.data.JsonStore({ url : 'GetProjectSelectList', root : 'root', autoLoad : true, fields : [ 'projectid', 'projectname' ] }); mu_combo_project_add = new Ext.form.ComboBox({ fieldLabel : '项目(*)', name : 'mu_combo_project_add', editable : true, mode : 'remote', store : mu_project_ds_add, emptyText : '请选择', typeAhead : true, loadingText : 'loading...', triggerAction : 'all', selectOnFocus : true, width : 200, allowBlank : true, frame : true, resizable : true, displayField : "projectname", valueField : "projectid", forceSelection : false, editable : false });
 


 

 

2. 双击grid展示form的时候需要对combobox进行赋值,希望显示的是RawValue(displayvalue)而不是id的值。

mu_combo_project_add.setValue(mu_projectid); 无效
 

3. 原因

因为 mu_project_ds_add的load是异步的,在extjs里边所有datastore的load都是异步;这给程序编写带来一定麻烦。界面画完的时候ds还不一定加载成功了,所以
只需要在ds加载的时候对combobox做处理即可

 
代码:
mu_project_ds_add.addListener('load', function() { if (mu_projectid > 0) mu_combo_project_add.setValue(mu_projectid); });