当前位置: 代码迷 >> Web前端 >> Ext.form.ComboBox setValue()初始值设定有关问题
  详细解决方案

Ext.form.ComboBox setValue()初始值设定有关问题

热度:1257   发布时间:2012-11-23 22:54:33.0
Ext.form.ComboBox setValue()初始值设定问题
在Store加上一个listeners时设置ComBox中对应的键值。
var nodeNameStore = new Ext.data.JsonStore({
		url : Listener
				+ '?className=etl.db.Node&methodName=getAllNodeJSON&paramCount=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;
  相关解决方案