39 votes

Comment récupérer un tableau de données JSON à partir du magasin ExtJS

Est-il une méthode me permettant de me retourner mes données stockées dans un ExtJS Panneau Grille exactement la façon dont je l'ai chargé à l'aide de:

var data = ["value1", "value2"]
Store.loadData(data);

Je voudrais avoir une option utilisateur à recharger la Grille, mais les modifications apportées à la boutique doivent être pris en compte. L'utilisateur peut faire des modifications et la grille est mise à jour dynamiquement, mais si je recharge la grille, les données qui ont été à l'origine de chargement est indiqué, même si la base de données a été mis à jour avec les nouvelles modifications. Je préfère ne pas recharger la page et de laisser recharger la grille de données elle-même avec la nouvelle store.

Je suppose que je cherche quelque chose comme ceci:

var data = Store.getData();
//data = ["value1", "value2"]

après son tout dit et fait. Ou est-il un autre moyen d'actualiser la grille avec les nouvelles données que je ne suis pas au courant. Même en utilisant le proxy utilise toujours le "original" de données, pas de la nouvelle banque. Merci d'avance

54voto

gambetti Points 361

Une approche à une ligne:

var jsonData = Ext.encode (Ext.pluck (store.data.items, 'data'));

Pas très joli, mais assez court.

53voto

Li0liQ Points 8104

Store.getRange() semble être exactement ce que vous recherchez. Il vous renverra Ext.data.Record[] - tableau d'enregistrements. Si aucun argument n'est passé, tous les enregistrements sont retournés.

9voto

Jakofff Points 91
 function getJsonOfStore(store){
        var datar = new Array();
        var jsonDataEncode = "";
        var records = store.getRange();
        for (var i = 0; i < records.length; i++) {
            datar.push(records[i].data);
        }
        jsonDataEncode = Ext.util.JSON.encode(datar);

        return jsonDataEncode;
    }

4voto

Yasser Farghaly Points 21

Essaye ça:

 myStore.each( function (model) {
    console.log( model.get('name') ); 
}); 
 

3voto

PatlaDJ Points 375

Vous n'avez pas besoin de faire de boucles et de collecter / retraiter des données. L'objet JSON dont vous avez besoin est ici:

 var jsonData = store.proxy.reader.jsonData;
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X