Juste pour info, voici la suite de mon raisonnement juste au dessus.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| dojo.xhrPost( {
url: "<?php echo POSITION.'inclus/depenses/deptdb/deptdb_contenu.php'; ?>",
form: dojo.byId("tdbmenu"),
handleAs: "json",
timeout: 5000,
load: function(response, ioArgs) {
var storenew = new dojo.data.ItemFileReadStore({data: response });
var grid = dijit.byId("grid");
grid.setStore(storenew);
grid.setStructure(response['layout']);
dojo.byId("deptdb").innerHTML = response['label'];
return response;
},
error: function(response, ioArgs) {
dojo.byId("deptdb").innerHTML = response;
return response;
}
}); |
La méthode pour changer le layout de la Grid est bien setStructure, et non pas setLayout.
Pour illustrer, voici un exemple de la valeur JSON reçue :
{"layout":[{"field":"item_nom","name":"Description","width":"auto"},{"field":"item_ean","name":"EAN","width":"auto"}],"identifier":"achat_detail_id","label":"Liste des articles achet\u00e9s : 2009-08-10 -> 2009-09-10","items":[{"achat_detail_id":"28","item_ean":"3179732324818","item_nom":"Eau de perrier"},{"achat_detail_id":"27","item_ean":"3258170010351","item_nom":null}]}
J'en conclus qu'on peut rajouter plein d'infos (genre "layout") et néanmoins toujours avoir (et faire interpréter) les valeurs dans "items".
Si cela peut d'autres qui cherchent des solutions....
Laurent
Partager