2013-03-09 5 views
3

J'ai une grille ExtJS avec un bouton de barre d'outils pour enregistrer la date. La sauvegarde fonctionne et les données sont stockées. Mais la grille n'est pas rafraîchie. Comment recharger les données de la grille après la sauvegarde?Sencha ExtJs Actualisation de la grille après enregistrement du magasin

Ext.define('MyLodge.view.content.MemberGrid', { 
extend: 'Ext.grid.Panel', 
alias: 'widget.membergrid', 



initComponent: function(){ 

    var rowEditing = Ext.create('Ext.grid.plugin.RowEditing'); 

    var store = Ext.create('MyLodge.store.Members'); 

    Ext.apply(this, { 
     height: this.height, 
     plugins: [rowEditing], 
     store: store, 
     stripeRows: true, 
     columnLines: true, 
     columns: [{ 
      id  :'id', 
      text: 'ID', 
      width: 40, 
      sortable: true, 
      dataIndex: 'id' 
     },{ 
      text : 'Name', 
      flex: 1, 
      sortable : true, 
      dataIndex: 'name', 
      field: { 
       xtype: 'textfield' 
      } 
     },{ 
      text : 'E-Mail', 
      width : 150, 
      sortable : true, 
      dataIndex: 'email', 
      field: { 
       xtype: 'textfield' 
      } 
     },{ 
      text : 'Href', 
      width : 200, 
      sortable : true, 
      dataIndex: 'href', 
      field: { 
       xtype: 'textfield' 
      } 
     }], 
     dockedItems: [{ 
      xtype: 'toolbar', 
      items: [{ 
       text: 'Add', 
       iconCls: 'icon-add', 
       handler: function(){ 
        // empty record 
        store.insert(0, new MyLodge.model.Member()); 
        rowEditing.startEdit(0, 0); 
       } 
      }, { 
       text: 'Delete', 
       iconCls: 'icon-delete', 
       handler: function(){ 
        var selection = grid.getView().getSelectionModel().getSelection()[0]; 
        if (selection) { 
         store.remove(selection); 
        } 
       } 
      },'-',{ 
       text: 'Save', 
       iconCls: 'icon-save', 
       handler: function(){ 
        store.sync(); 

       } 
      }] 
     }] 
    }); 

    this.callParent(arguments); 
} 

});

Répondre

4

Vous pouvez charger stocker dans le rappel de synchronisation

store.sync({ 

     success: function(response) { 
       store.load(); 
      } 
}); 
0

Vous voudrez probablement appeler store.reload() dans un rappel de store.save() (ce qui est store.save() de toute façon? Il ne fait pas partie de l'interface Ext.data.Store)

+0

question mise à jour : remplacé store.save() avec store.sync() – Kevin

Questions connexes