Ext.form.ComboBox setValue()初始值设定问题
在Store加上一个listeners时设置ComBox中对应的键值。
var nodeNameStore = new Ext.data.JsonStore({url : Listener+ '?className=etl.db.Node&methodName=getAllNodeJSON¶mCount=0',totalProperty : 'results',root : 'root', id : 'id',fields : ['id', 'name'],listeners : {load : function() {nodeName.setValue(nodeName.getValue());}}});nodeNameStore.load();var nodeName = new Ext.form.ComboBox({xtype : "combo",name : "nodeName",fieldLabel : "所在作业节点",displayField : 'name',// 下拉框显示的值valueField : 'id',store : nodeNameStore,triggerAction : 'all',editable : false,allowBlank : false,emptyText : '请选择作业节点',selectOnFocus : true});nodeName.setValue("1");因为load()方法是异步加载,所以在setValue()里不能保证一定加载完成,因此要增加侦听事件。
但在Ext.grid中这样设置不起作用。需要再渲染一下。
{id : "node",header : "节点名",dataIndex : 'node',sortable : true,width : 80,editor : nodeName,renderer : function(value, p, r) {var record = nodeNameStore.getById(value); if (record == undefined) {return "";} else {return record.data.name;}}}这样在设置时会自动显示正确的dispalyField;