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
|
//Définition modèle de colonnes
function createModel(modelName, p_reponse) {
var oLigne = p_reponse.getElementsByTagName("ligne");
var iNbColonne = oLigne[0].childNodes.length;
var fields = new Array(iNbColonne);
for(var i = 0;i < iNbColonne; i++){
fields[i] = {
name: oLigne[0].childNodes[i].nodeName,
type: "string"
};
}
//alert(fields);
Ext.define(modelName, {extend: "Ext.data.Model", fields: fields});
}
function createRecord(modelName) {
var record = Ext.create(modelName);
return record;
}
//Création colonne du grid (selon le modèle)
function createColumns(p_reponse) {
var oLigne = p_reponse.getElementsByTagName("ligne");
var iNbColonne = oLigne[0].childNodes.length;
var newColumns = new Array(iNbColonne);
for(var i = 0;i < iNbColonne; i++){
newColumns[i] = {
header: oLigne[0].childNodes[i].nodeName,
dataIndex: oLigne[0].childNodes[i].nodeName,
width: 60
};
}
return newColumns;
}
Ext.Ajax.request({
url: ''/report.php'',
method:''POST'',
//params:{dateDbt:sDateDbt,dateFin:sDateFin,deposant:iDeposant},
success: function(result, request){
alert("Chargement ok");
var doc;
if (window.ActiveXObject) {
var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(result.responseText);
} else {
var doc = new DOMParser().parseFromString(result.responseText,"text/xml");
}
createModel("SomeModel", doc);
var xmlReader = Ext.create("Ext.data.XmlReader",{model:"SomeModel",record:"ligne",totalRecords:"@total"});
Ext.create("Ext.grid.Panel", {
id:"gidReport",
width: 950,
height: 700,
store: Ext.create("Ext.data.Store",{
model: "SomeModel",
//buffered: true,
autoLoad:true,
reader:xmlReader,
data:[createRecord("SomeModel"),{data:doc}]
}),
autoScroll: true,
columns:createColumns(doc),
renderTo:Ext.getBody()
}).show();
},
failure: function(result, request){
alert("Erreur : "+result.responseText);
}
}); |
Partager