Chargement dynamique d'un datagrid
Bonjour,
J'essaye (désespérément) de charger un datagrid contenu dans un onglet qui est lui même chargé dynamiquement.
Je voudrais que l'utilisateur puisse modifier les données présentées ainsi que rajouter des lignes.
J'ai écris le code ci-dessous (extrait) :
- sur l'évênement onRowClick d'un premier datagrid, je charge le contenu de mes onglets (cette partie fonctionne)
- les onglets contiennent des datagrids dont je voudrais charger le contenu dynamiquement.
Pour l'extrait ci-dessous, j'ai placé le storeActions et le contenu du tabActions, mais je le charge en réalité avec un xhrGet.
Mon problème, c'est que je n'arrive pas à recharger le store pour rafraichir le datagrid avec le nouveau contenu. Je suis passé par un datastore pour faire un "save" plus tard.
Merci pour votre aide et suggestions.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
<script type="text/javascript">
var MCurrentId=0;
var MCurrentItemId=0;
//=============================
// onTableItemClick
// Sur clic d'une ligne de la table, mise a jour des onglets
//-----------------------------
function onTableItemClick(cell)
{
var item = cell.grid.getItem(cell.rowIndex);
var id = this.store.getValue(item, "id");
var itemid = this.store.getValue(item, "ItemId");
MCurrentId = id;
MCurrentItemId = itemid;
//=============================
// getServerCallback
// On remplace tout le code HTML du widget
//-----------------------------
function getServerCallback(data,ioArgs)
{
//dijit.byId("tabspanel").setContent(data);
dijit.byId("tabactions").setContent(data);
//------------------------------
// Cette partie ne fonctionne pas
//------------------------------
// Mise a jour du "store" et donc de la grille
storeActions.fetch({
url: "<?php echo BASE_URL . '/datastore/getactions/itemid/' ?>" + MCurrentId,
query: { id: '*' },
//onComplete:
//onError:
});
}
dojo.xhrGet({
url: "<?php echo BASE_URL . '/datastore/gettabs ?>",
load: getServerCallback,
//error: getServerError,
content: {id: MCurrentId, itemid: MCurrentItemId},
timeout: 15000
});
}
</script>
<!-- Store items -->
<div dojoType="dojo.data.ItemFileWriteStore" jsId="storeItems" url="<?php echo BASE_URL . '/datastore/getitems ?>"></div>
<!-- Store actions -->
<div dojoType="dojo.data.ItemFileWriteStore" jsId="storeActions" ></div>
<!-- Table des items (en haut) -->
<div dojoType="dijit.layout.ContentPane" splitter="true" region="top" style="height:200px;" sizeMin="50" sizeShare="20">
<!--Table des items-->
<table id="tableitems" dojoType="dojox.grid.DataGrid" jsId="gridItems" edit="false" selectable="true"
store="storeItems" query="{id:'0'}" onRowClick="onTableItemClick" >
<thead>
<tr>
<th field="id" width="20px">Id</th>
<th field="ItemId" width="20px">N°</th>
<th field="ItemLibelle" width="100%">Description des items</th>
</tr>
</thead>
</table> <!--Table des items-->
</div> <!-- Table des items (en haut) -->
<!-- Detail d'un item (au centre) -->
<div id="tabspanel" jsId="tabspanel" dojoType="dijit.layout.ContentPane" splitter="true" region="center" sizeMin="50" sizeShare="80">
<div id="tabs" dojoType="dijit.layout.TabContainer" jsId="tabs">
Ce contenu est chargé dynamiquement,
placé ici pour l'explication
<div id="tabactions" dojoType="dijit.layout.ContentPane" title="Actions" >
<p>Liste des actions :</p>
<table style="height:200px;" id="tableactions" jsId="gridActions" dojoType="dojox.grid.DataGrid" query="{id:'*'}" store="storeActions">
<thead>
<tr>
<th field="id" >Id</th>
<th field="libelle" >Description</th>
</tr>
</thead>
</table>
</div>
<div id="tabdocuments" dojoType="dijit.layout.ContentPane" title="Doscuments" >
<p>Liste des documents :</p>
</div>
</div> <!-- tabs -->
</div> <!-- Detail d'un item (au centre) --> |
clearOnClose juste les requetes choisi
Salut,
En cherchant des infos sur clearOnClose je suis tombé sur cette discution.
Je cherche a supprimer la cache pour une query spécifique et non pour tout le store. Est ce possible?
Merci
Tjs le même problème de cache query
Bonjour,
Je suis toujours sur le même problème mais je pense que je me suis mal expliqué.
Le problème c que je souhaite pouvoir mettre en cache ma query puis a un moment donné pouvoir supprimer le cache de cette query.
Ce qui me permettrait de faire exactement le meme fetch qui cette fois fera un get et donc un acces au serveur pr me renvoyer une nouvelle reponse.
Merci pour vos réponses.