2016-02-10 51 views
1

加載視圖時,我無法加載商店數據。 這是我的商店: (strEstadosMtoOrganismos.js)無法在ExtJS4中加載組合的商店

Ext.define('TelicitaApp.store.filtros.strEstadosMtoOrganismos', { 
extend: 'Ext.data.Store', 
model: 'TelicitaApp.model.filtros.mdlEstadosMtoOrganismos', 
autoLoad: false, 
proxy: { 
    type: 'ajax', 
    api: {read: './data/php/filtros/Tmc_EstadosMtoOrganismos.php?despliegue='+TelicitaApp.Settings.despliegue}, 
    reader: { 
       type: 'json', 
       root: 'data', 
       totalProperty: 'total', 
       successProperty: 'success' 
    } 
} 
}); 

這是我的視圖: (viewGridMtoOrganismos.js)

Ext.define('TelicitaApp.view.mantenimientos.organismos.viewGridMtoOrganismos', { 
extend: 'Ext.grid.Panel', 
alias: 'widget.viewGridMtoOrganismos', 
requires: [ 
], 
initComponent: function() { 
    var toolbar1 = { 
      xtype : 'toolbar', 
      dock : 'top', 
      items: [ 
        { 
         iconCls:'limpiar-icon', text:'Limpiar', handler: function() {}, 
        }, 
        '->', 
        { 
         iconCls:'refresh', text:'Recargar', handler: function() {}, 
        } 
      ] 
    }; 

    var toolbar2 = { 
      xtype: 'toolbar', 
      dock: 'top', 
      items: [ 
        {text:'<span style="color:#C85E00;">Estado</span>'}, 
        { 
         xtype: 'combo', 
         value: 'Todos', 
         queryMode: 'remote', 
         triggerAction: 'all', 
         editable: false, 
         displayField: 'label', 
         valueField: 'value', 
         store: 'filtros.strEstadosMtoOrganismos' 
        } 
      ] 
    } 

    Ext.apply(this, { 
     frame: true, 
     bodyPadding: '5 5 0', 
     fieldDefaults: { 
      labelAlign: 'top', 
      msgTarget: 'side' 
     }, 
     forceFit: true, 
     height: 300, 
     stripeRows: true, 
     loadMask: true, 
     tbar: { 
      xtype: 'container', 
      layout: 'anchor', 
      defaults: {anchor: '0'}, 
      defaultType: 'toolbar', 
      items: [ 
        toolbar1,toolbar2 
      ]   
     }, 
     columns: [ 
        {header:'<span style="color:blue;">Id</span>', xtype: 'numbercolumn',format:'0', width:35, sortable: true}, 
     ] 
    }); 
    this.callParent(arguments); 
} 
}); 

這是我的控制器: (ctrlMtoOrganismos.js)

Ext.define('TelicitaApp.controller.ctrlMtoOrganismos', { 
extend: 'Ext.app.Controller', 
models:[ 
     'mantenimientos.organismos.mdlMtoOrganismos', 
     'filtros.mdlEstadosMtoOrganismos' 

], 
stores:[ 
     'mantenimientos.organismos.strMtoOrganismos', 
     'filtros.strEstadosMtoOrganismos' 
], 
views: [ 
     'mantenimientos.organismos.viewModuloMtoOrganismos' 
], 
refs: [ 
], 
init: function() { 
    this.control({ 

    }); 
}, 
onLaunch: function() { 

}, 
}); 

如果我將商店中的自動載入屬性設置爲true,它會在應用程序啓動時加載數據.B我想在加載視圖時加載數據。 一旦視圖加載,如果我展開組合它啓動PHP文件taht填充組合,但我希望它加載視圖後自動加載數據,而不是當您展開組合。

回答

1

更換

this.callParent(arguments); 
} 

this.callParent(arguments); 
    this.down('combo').getStore().load(); 
} 

,你是好去。

+0

它的工作,現在兩件事: 1.如果我有更多的組合,與this.down('combo')。getStore()。load();加載所有組合商店? 2.如何避免現在再次啓動擴展組合時填充商店的php? – SensacionRC

+0

1.不,[[down]](http://docs.sencha.com/extjs/6.0/6.0.1-classic/#!/api/Ext.mixin.Queryable-method-down)會讓你第一。你可以遍歷['query'](http://docs.sencha.com/extjs/6.0/6.0.1-classic/#!/api/Ext.mixin.Queryable-method-query)來加載所有的他們。 2.如果您設置了queryMode:'local',則組合在打開菜單時不會觸發存儲加載。 – Alexander

+0

還有什麼更好的做法是,在視圖或控制器中加載商店? – SensacionRC