我有以下代码:
// Part of a larger form.
{
xtype: 'combo',
id: 'enroller',
valueNotFoundText: 'not found',
triggerAction: 'all',
mode: 'local',
fieldLabel: 'Enroller',
store: new Ext.data.JsonStore({
url: url,
root: 'data',
autoLoad: true,
fields: ['enrollerID', 'name', 'key']
}),
displayField: 'name',
valueField: 'key',
hiddenName: 'enrollerID',
forceSelection: true
}
// Other area of code.
Ext.getCmp('enroller').setValue(289);
即使我可以确认商店的记录如下:
{"name":"Test Enroller","enrollerID":"289","key":"289"}
组合框显示valueNotFoundText。如何让组合加载正确的记录?
答案 0 :(得分:4)
最后让它使用此代码。我强制组合框仅在商店加载其值后才加载值。在商店加载其值之前设置之前。
{
xtype: 'combo',
fieldLabel: 'Enroller',
ref: 'enroller',
store: {
xtype: 'jsonstore',
url: context + '/store.do',
baseParams: { 'class': 'scheduler.Enroller' },
autoLoad: true,
listeners: {
load: function() {
me.enroller.setValue(me.enroller.getValue());
}
}
},
displayField: 'name',
valueField: 'enrollerID',
hiddenName: 'enrollerID',
triggerAction: 'all'
}
答案 1 :(得分:0)
尝试使用Ext.getCmp('enroller')。setValue(“289”);
在Ext的某些情况下,他们会与===进行比较,这也会对对象类型进行比较,即。它需要是一个字符串vs一个int。