Combobox没有加载显示商店数据 - Ext JS

时间:2013-08-14 15:42:23

标签: extjs model combobox store

无论我尝试什么,我都无法让我的组合框从我的商店中显示一个字段。

这是我的代码:

存储/ 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' },

我也不想使用代理。有什么想法吗?

2 个答案:

答案 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'。我在没有测试的情况下将我的工作代码改编为您的示例。

我希望它有所帮助。