解决Ext.form.ComboBox 初始值加载不正确
new Ext.form.ComboBox({ hiddenName: 'order_state', name: 'state', width: 80, emptyText: '状态', mode: 'local', displayField: 'name', valueField:'id', triggerAction: 'all', editable: false, store: Ext.create({ autoLoad: true, xtype:'directstore', root: 'rows', fields: ['name', 'id'],
idProperty: 'id', directFn:Ads.OrderState,
listeners:{
load:{
fn:function(){this.reset();}, //重置ComboBox的值
scope:this //调用域链指向ComboBox
}
} }) })
发生值显示不正确的主要原因是,这里的Store加载数据是放在所有东东都初始化之后,当然也在你加载表单值之后,所以在加载表单的时候根本没有对应的displayText可用,只能显示原始值了。
解决方法有很多种,很多人选择在ComboBox.Store.Load事件里加载表单值,但个人感觉这种做法不太妥,当有很多个ComboBox的时候还是有先后顺序的问题。
此处建议在form所属的FormPanel的render事件中加载表单值,然后在对应ComboBox.Store.Load使用上述黄色高亮代码。
浙公网安备 33010602011771号