2010-12-15 3 views
4

J'ai une grille faite avec ExtJS, et je la restitue à une div que je définis, quand une actualisation est demandée, je "vide" la div en utilisant JQuery, puis je rends la grille la création de nouveaux objets chaque fois:EXTJS ReRendering de la grille avec Datastore

var grid = new xg.GridPanel({ 
    store: store, 
    columns: [ 
    ... 
    renderTo: 'db-grid' 

et puis vider la div que j'utilise ceci:

$("#db-grid").empty(); 

cela fonctionne bien pour comme 3 ou 4 rafraîchit, et il semble charger très lentement, je Imaginez que c'est parce qu'il recrée tous ces objets à nouveau, la seule chose qui change à chaque fois est le «magasin». J'acquiers cela à travers une requête AJAX, y a-t-il un moyen de rafraîchir ceci sans créer une nouvelle grille à chaque fois? Je suis assez nouveau sur ExtJS, et je fais une transition ici depuis JQuery, c'est pourquoi j'utilise la fonction "empty()" de JQuery, si vous connaissez une alternative à ExtJS , Je serais heureux d'utiliser à la place,

Merci!

Répondre

4

Jetez un coup d'œil aux méthodes load(Object options) et reload(Object options) du Store au http://dev.sencha.com/deploy/dev/docs/.

Un exemple de cette fonctionnalité peut être vu dans Ext.PagingToolbar. Cette classe contient un bouton qui rafraîchit une grille et son magasin, sans détruire la grille à chaque fois:

// private 
    doLoad : function(start){ 
     var o = {}, pn = this.getParams(); 
     o[pn.start] = start; 
     o[pn.limit] = this.pageSize; 
     if(this.fireEvent('beforechange', this, o) !== false){ 
      this.store.load({params:o}); // here is the call you're interested in 
     } 
    }, 

doLoad() est alors appelé simplement de la méthode doRefresh():

doRefresh : function(){ 
     this.doLoad(this.cursor); 
    }, 

J'inclus ce code pour la Par souci d'un exemple complet, mais tout ce dont vous avez besoin de vous préoccuper est les méthodes load() ou reload(). Assurez-vous de lire l'API pour voir une liste complète des arguments qui peuvent être passés dans les méthodes.

Questions connexes