0

我想定义存储companyList的data.store,因为我想稍后重用这个存储。

tbar: Ext.create('Ext.Toolbar', {
    items: [
        {
        xtype : 'combo',
        name : 'companyCode',
        editable : false,
        valueField : 'companyCode',
        displayField : 'companyName',
        triggerAction : 'all',
        store: Ext.create('Ext.data.Store', {
                fields: ['companyCode', 'companyName'],
                proxy: {
                type: 'ajax', 
                url: '/Reports/GetCompanyList/',
                reader: 'json',
                actionMethods: {
                    read: 'POST'
                }
                },
                autoLoad:true  
            })

上面的代码是可行的,我想把商店放到app文件夹下的我的商店文件夹中。

商店/CompanyList_store.js

Ext.define('App.store.CompanyList_store', {
    extend: "Ext.data.Store",
    fields: ['companyCode', 'companyName'],
    proxy: {
        type: 'ajax',
        url: '/Reports/GetCompanyList/',
        reader: 'json',
        actionMethods: {
            read: 'POST'
        }
    },
    autoLoad: true  
});

我在控制器中添加了这个商店。

Ext.define("App.controller.InventoryReport", {
    extend: "Ext.app.Controller",
    stores: ['Inventory_store', 'CompanyList_store'],
    .
    .

并将此商店添加到组合框商店,

tbar: Ext.create('Ext.Toolbar', {
    items: [
        {
        xtype : 'combo',
        name : 'companyCode',
        editable : false,
        valueField : 'companyCode',
        displayField : 'companyName',
        triggerAction : 'all',
        store: 'CompanyList_store' //it does not work.

我做错了什么?如果有人知道,请给我建议。

4

2 回答 2

1

必须将商店的 storeId 属性设置为您从组合中调用的值

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.AbstractStore-cfg-storeId

但在现实生活中,我建议使用 Deft 的依赖注入。

于 2012-06-12T07:09:16.047 回答
1

我认为您忘记在应用程序文件中包含所有商店。

它应该是这样的:

Ext.application({
  appFolder: ...
  controllers: [your controllers here],
  stores: [your stores here]
});

如果您将商店放在不同的文件夹中(以在 ext 应用程序之间共享它们),请确保包含以下内容 Ext.Loader.setPath([namespace], [path to the folder with stores]:)

于 2012-06-12T12:26:54.630 回答