在修改信息窗口中,Ext.combobox的默认值显示

var ustatus = Ext.create('Ext.form.field.ComboBox',{
		width: 325, 
		labelWidth: 80, 
		fieldLabel:'状态',
		allowBlank:true,
		store:Ext.create('Ext.data.Store',{
			fields:[{name:'label'},{name:'value'}],
			data:[{label:'启用',value:'1'},{label:'禁用',value:'0'}]
		}),
		displayField:'label',
		valueField:'value',
		name:'ustatus',
		id:'ustatus',
		listeners: {  
			afterrender: function(combo) {  
			combo.setValue(statuValue);  //statuValue为数据库读取的1或0.
        		
         }  
		}  
		
	});     

结果在修改窗口combobox显示的是1或0.不能根据传入的statuValue显示其对应的displayField .

于是修改成:

afterrender: function(combo) {
 if(statuValue == '1'){
combo.setRawValue('启用'); 
combo.setValue(statuValue);
}else{
combo.setRawValue('禁用');
 combo.setValue(statuValue);                    }

 } 

结果在修改窗口combobox显示的还是1或0.不能根据传入的statuValue显示其对应的displayField .

但将combo.setValue(statuValue);放在combo.setRawValue('启用');后面的话,显示的是'启用',但如果不修改直接提交的话,会报错,后台接到的值是null.

所以发现:

combo.setRawValue('启用');combo.setValue(statuValue);是一回事,都是设displayField的值,不能设置valueField的值。

于是将代码修改成:

listeners: {  
			afterrender: function(combo) {  
			
        		if(statuValue == '1'){
        			//combo.setValue('启用');
        			combo.setRawValue('启用');
        			combo.value=statuValue;
        			}else{
        			combo.setRawValue('禁用');
        			combo.value=statuValue;
        			}
         }  
		}  

结果正确。在修改窗口中显示的是dispalyField值。直接提交后台也能得到dispalyField对应的valueField值。

但还有一个小问题。就是在修改窗口中第一次点击下拉框的时候Combobox中的值变成了1或0。













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值