1

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

这是我的代码:

商店/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' },

我也不想使用代理。有任何想法吗?

4

2 回答 2

0

如果fields您使用的是Model. 还。data您商店中的商品很可能不是您想要的。您有 3 条不同的记录,每条记录都只填充了一个字段。你可能想要这个:

data : [
    { 
        TECH_NAME: 'TECH_NAME',
        KBE_ID: 'KBE_ID',
        KBE_NAME: 'KBE_NAME' 
    }
]
于 2013-08-14T15:49:06.090 回答
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'。我未经测试将我的工作代码改编为您的示例。

我希望它有所帮助。

于 2015-10-21T19:52:53.120 回答