extjs4.2 combox 设置默认值以及选中某条值

       公司的一同事被extjs的combox设置默认值折腾的很崩溃:给combox设置值之后一直显示的id也就是combox中配置的valueField,而不是displayField,而且展开下拉框之后该条记录也不是选中状态。extjs俺也不太熟,想帮也帮不上忙,闲来无事就网上搜了下,大多数都是在store上绑定load事件,然后在事件里面做些让combox选中的事情,但是我怎么试都不行,可能是ext不向下兼容的原因,也可以是自己extjs太菜。实在不行,就拿着extjs的API一通乱试,最后终于完美解决:

  1. 先给store绑定load事件
  2. 如果combox没有值,则让第一条记录选中
  3. 如果有值,则通过store的findRecord函数进行查找,然后让它选中

 

var userCombo = new Ext.form.ComboBox({
    		xtype : "combo",
			id : "investItemAddForm#userCombo",
			fieldLabel : '借款人',
			name : 'userId',
			triggerAction : "all",
			store : new Ext.data.JsonStore( {
			     fields : [ 'userId', 'loginName' ],
			     proxy: {
			         type: 'ajax',
			         url: 'p2p/admin/getUser.action',
			         reader: {
			             type: 'json',
			             root: 'root'
			         }
			     },
			     autoLoad: true,
			     listeners : {
			    	 load : function(store, records, success, eOpts) {
			    		 var selected = userCombo.getValue();
			    		 if (selected) {
			    		    	var store = userCombo.getStore();
			    		    	var obj = store.findRecord(userCombo.valueField, selected);
			    		    	userCombo.select(obj);  
			    		 } else {
			    			 userCombo.select(records[0]);
			    		 }
			    		 
			    	 }
			     }
			 }),
			displayField : 'loginName',
			valueField : 'userId',
			mode : 'remote',
			editable : false,
			emptyText : '请选择'
    	});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值