无论我尝试什么,我都无法让我的组合框从我的商店中显示一个字段。
这是我的代码:
存储/ Criteria_1.js
Ext.define('AM.store.Critera_1', { //temp store
extend: 'Ext.data.Store',
model: 'AM.model.Criteria1',
storeId: 'search_criteria_1',
fields: ['TECH_NAME', 'KBE_ID', 'KBE_NAME'],
data : [
{ TECH_NAME: 'TECH_NAME' },
{ KBE_ID: 'KBE_ID' },
{ KBE_NAME: 'KBE_NAME' }
];
});
模型/ Criteria_1.js
Ext.define('AM.model.Criteria_1', {
extend: 'Ext.data.Model',
fields: [
{ name: 'TECH_NAME', type: 'string' },
{ name: 'KBE_ID', type: 'int' },
{ name: 'KBE_NAME', type: 'string' }
]
});
在这里,我试图调用它,app.js:
{ xtype: 'combobox', padding: 5, id: 'criteria_1_dropdown', store: Ext.StoreManager.get('Criteria_1'), displayField: 'KBE_ID' },
我也不想使用代理。有什么想法吗?
答案 0 :(得分:0)
如果您使用fields
,则不应在商店中定义Model
。也。您商店中的data
很可能不是您想要的。您有3个不同的记录,每个记录只填充了一个字段。你可能想要这个:
data : [
{
TECH_NAME: 'TECH_NAME',
KBE_ID: 'KBE_ID',
KBE_NAME: 'KBE_NAME'
}
]
答案 1 :(得分:0)
我遇到了同样的问题。我在Extjs 5文档中查看了这个示例:http://dev.sencha.com/extjs/5.0.0/examples/kitchensink/#form-combos
你有一些不同的东西。试试这个:
Ext.define('AM.model.Criterion', { // the model name should be singular; it refers to only one entry)
extend: 'Ext.data.Model',
fields: [
'TECH_NAME',
'KBE_ID',
'KBE_NAME'
]
});
Ext.define('AM.store.Critera_1', { //temp store
extend:'Ext.data.ArrayStore',
model: 'AM.model.Criterion',
storeId: 'search_criteria_1',
data : [
[ 'TECH_NAME_ONE', 'KBE_ID_ONE', 'KBE_NAME_ONE' ]
];
});
最后:
{
xtype: 'combobox',
padding: 5,
id: 'criteria_1_dropdown',
store: { type:'search_criteria_1' },
displayField: 'KBE_ID',
queryMode:'local'
}
注意queryMode:'local'
。我在没有测试的情况下将我的工作代码改编为您的示例。
我希望它有所帮助。