Bonjour,
Je ne savais pas trop où mettre ce sujet, vu qu'il touche aussi bien XML, Ajax et javascript, jelaisse donc le soin aux modérateurs de choisir le plus approprié :ccool:
Sinon voici mon problème : Je dois récupérer les données d'un XML via un dojo.xhr pour les afficher sous forme de tableau à l'aide de dojo DataGrid. J'arrive à récupérer les données et dans un autre contexte, j'arrive à faire afficher un DataGrid. Mais je bloque pour faire les deux en même temps. Du moins, j'arrive à afficher l'entête de mon tableau, mais pour les données, çà me marque : Une erreur est survenue. Coooollll Mais c'est quoi cette erreur plus précisément XD !
Voici le code que j'utilise :
Le fichier XML est ce qu'il y a de plus classique, rien de compliqué.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 <!DOCTYPE html> <html> <head> <title>Dojo</title> <link type="text/css" rel="stylesheet" href="claro.css"/> <style type="text/css"> @import "Grid.css"; @import "nihiloGrid.css"; .dojoxGrid table { margin: 0; } </style> <script>dojoConfig = {parseOnLoad: true}</script> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.8.1/dojo/dojo.js"></script> <script src="xml2jsobj.js"></script> <script> dojo.require("dojox.grid.DataGrid"); dojo.require("dojox.data.XmlStore"); dojo.require("dojox.data.JsonRestStore"); dojo.require("dojo.data.ItemFileReadStore"); dojo.ready(function(){ var targetNode = dojo.byId("grid.DataGrid"); var xhrArgs = { url: "../vehicules.xml", handleAs: "xml", load: function(data, ioArgs){ var JSONData = xml2json.parser(data); var newData = { identifier: 'vehicules', items: data }; //var dataStore = new dojox.data.XmlStore({data: data}); var dataStore = new dojo.data.ItemFileReadStore({data: newData, id:"dataStoreId"}); var gridStructure = [ [ { field: "numero", name: "Numéro", width: 5, }, { field: "marque", name: "Marque", width: 5, }, { field: "modele", name: "Modèle", width: 10, }, { field: "immatriculation", name: "Immatriculation", width: 15, }, { field: "date_immat", name: "Date immat", width: 10, } ] ]; var grid = new dojox.grid.DataGrid({ structure: gridStructure }); grid.setStore(dataStore); grid.placeAt(targetNode); grid.startup(); }, error: function(error){ targetNode.innerHTML = "An unexpected error occurred: " + error; } }; var deferred = dojo.xhrGet(xhrArgs); }); </script> </head> <body class='claro'> <h1>Dojo</h1> <div id="grid.DataGrid" style="width:900px; height:200px;"></div> </body> </html>
J'ai essayé avec deux Data store différent, l'un pour XML et un autre pour du JSON.
Si quelqu'un aurait la gentillesse de m'aider, je lui en serais grandement reconnaissant :)
Merci d'avance.