ExtJS ComboBox 第一次不显示display的值

用ExtJS的ComboBox做下拉列表的时候,发现一个很奇怪的问题,

当你setValue的时候,第一次是不会显示display的值。


[code="js"]function getMailTypeComboBox(){
var mailTypeComboBox = null;
if (!mailTypeStore){
mailTypeStore = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({url: "mailTypeJson!list.action"}),
reader: new Ext.data.JsonReader({
root: "root",
totalProperty: "totalProperty"
}, [
{name: 'categoryId'},
{name: 'mailHandle'},
{name: 'handleName'},
{name: 'registration'}
])
}
});
}

mailTypeStore.load({params:{limit:10,start:0}});

if (!mailTypeComboBox){
mailTypeComboBox = new Ext.form.ComboBox({
id: "typeID",
fieldLabel: '邮件类型',
hiddenName: 'categoryId',
store: mailTypeStore,
valueField: 'categoryId',
displayField: 'handleName',
typeAhead: true,
readOnly: true,
mode: 'local',
triggerAction: 'all',
blankText: '请选择邮件类型...',
emptyText: '请选择...',
selectOnFocus: true,
width: 200
});
}

return mailTypeComboBox;
}[/code]

一直搞不明白为什么,网上找了很久也没有答案,跟同事研究了一段时间也得不到结果


后来还是同事找了一个博文,增加一个监听器就好了

(http://www.cnblogs.com/simonhaninmelbourne/archive/2009/03/06/1404347.html)


修改后的代码


[code="js"]function getMailTypeComboBox(){
var mailTypeComboBox = null;
if (!mailTypeStore){
mailTypeStore = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({url: "mailTypeJson!list.action"}),
reader: new Ext.data.JsonReader({
root: "root",
totalProperty: "totalProperty"
}, [
{name: 'categoryId'},
{name: 'mailHandle'},
{name: 'handleName'},
{name: 'registration'}
]),
listeners: {
load: function() {
mailTypeComboBox.setValue(mailTypeComboBox.getValue());
}


}
});
}

mailTypeStore.load({params:{limit:10,start:0}});

if (!mailTypeComboBox){
mailTypeComboBox = new Ext.form.ComboBox({
id: "typeID",
fieldLabel: '邮件类型',
hiddenName: 'categoryId',
store: mailTypeStore,
valueField: 'categoryId',
displayField: 'handleName',
typeAhead: true,
readOnly: true,
mode: 'local',
triggerAction: 'all',
blankText: '请选择邮件类型...',
emptyText: '请选择...',
selectOnFocus: true,
width: 200
});
}

return mailTypeComboBox;
}[/code]

增加的监听器

listeners: {

load: function() {

mailTypeComboBox.setValue(mailTypeComboBox.getValue());

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值