2010-12-15 2 views
1

créer un GridPanel comme ceci:Component Obtenir dans ExtJS

grid = new xg.GridPanel({ 
    id: 'gridid', 
    store: store, 
    columns: [ 
    ... 

Plus tard, je tente d'obtenir l'élément afin que je puisse charger de nouvelles données en elle. Dans la documentation Sencha il déclare que loadData est à la disposition GridPanel objet

alt text

J'ai donc essayé ceci:

Ext.getCmp('gridid').loadData(store); 

Et chromes imprime console cette erreur:

Uncaught TypeError: Object [object Object] has no method 'loadData' 

Fait intéressant, quand j'essaie

Ext.getCmp('gridid').getStore().loadData(store); 

Cette erreur disparaît et le magasin actuel disparaît de la grille, mais il reste vide, le nouveau magasin n'est pas chargé. S'il vous plaît aider! MISE À JOUR: Lorsque je console.log le magasin, je vois toutes les informations à l'intérieur de l'objet telles qu'elles devraient apparaître, mais elles ne sont pas affichées dans la grille.

Répondre

3

En supposant que le store que vous » re passer dans la fonction loadData n'est pas la même chose que le magasin de la grille, essayez quelque chose comme ceci:

var gridStore = Ext.getCmp('gridid').getStore(); 
gridStore.removeAll(); 
gridStore.add(store.getRange()); 
+0

Merci Wombleton cela a fonctionné, :) –

1

mon Ext est un peu rouillé mais je suis assez sûr que loadData est passé les données lui-même (par exemple un tableau d'enregistrements/objets), pas le magasin.

Comment avez-vous déclaré votre magasin? Charge-t-il des données distantes ou des données locales statiques?

Il est un exemple d'utilisation loadData ici: http://extjs.wima.co.uk/example/4

Si vous utilisez des données à distance, peut-être vous manque juste autoload sur votre déclaration de magasin ..