Actualiser Dojo Datagrid

Je tente donc de rafraîchir un Datagrid lorsque les données des magasins changent.

//Store for my datagrid var myStore= new dojo.data.ItemFileWriteStore({ url : '/my/store.html', clearOnClose:true, urlPreventCache:true } ); 

Lorsque je lance un appel ajax pour enregistrer / mettre à jour les données pour la grille, en rappel de l'appel ajax, j'appelle:

 function myCallBack() { myStore.close(); Alert("Data Saved Successfully"); } 

La fonction qui met à jour les enregistrements dans Grille, appelle myStore.save () juste avant de sortir. Ce scénario fonctionne bien dans FireFox mais la grille n'est pas rafraîchissante dans IE8

Tous les conseils ou l'aide sont très appréciés.

D'accord, j'ai trouvé la solution. Vous devez d'abord fermer le magasin sur votre grille:

 myGrid.myStore.close(); 

Ensuite, réglez la boutique dans la grille avec de nouvelles données:

 myGrid.setStore(newStoreData); 

Pour plus d'informations, suivez ceci

Vous pouvez également réinitialiser la requête afin de l'exécuter à nouveau. Suivez le didacticiel pour configurer la page: http://dojotoolkit.org/documentation/tutorials/1.7/store_driven_grid/

Dans l'exemple datagrid avec un magasin en mémoire:

  require( ["dojox/grid/DataGrid", "dojo/data/ObjectStore", "dojo/store/Memory", "dojo/domReady!"], function ( DataGrid, ObjectStore, Memory ) { var formsList = [ {id:1, name:"Jim", department:"accounting"}, {id:2, name:"Rosenblumentalovitsch", department:"engineering"}, {id:3, name:"Mike", department:"sales"}, {id:4, name:"John", department:"sales"} ]; formStore = new Memory( {data:formsList, idProperty:"id"} ); formGrid = new DataGrid( { store:dataStore = ObjectStore( {objectStore:formStore} ), query: {id: "*"} , structure:[ { name:"Form", field:"name", width:"100%" } ] }, "grid" ); formGrid.startup(); } ); 

Lors de l'ajout d'un élément au formStore la grille de données n'est pas automatiquement actualisée. Voici la fonction addForm avec l'actualisation:

 function addForm( evt ) { // set the properties for the new item: var myNewItem = {id:5, name:"Jim 2", department:"accounting"}; // Insert the new item into the store: formStore.add( myNewItem ); formGrid.setQuery({id: "*"}); //this row executes the query again, thus refreshing the data grid }