Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Ext JS / Sencha
Ext JS / Sencha Ext JS / Sencha Forum d'entraide sur les frameworks Ext JS et Sencha. Avant de poster : FAQ ExtJS / Sencha, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/03/2011, 17h05   #1
Membre confirmé
 
Homme
Étudiant
Inscription : mai 2007
Messages : 249
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2007
Messages : 249
Points : 240
Points : 240
Par défaut Json et TreeGrid

Bonjour,

J'ai un TreeGrid dans lequel mes données ne s'affiche pas.
Je n'est aucune erreur dans firebug (ni ailleurs ^^)

Voici la construction de mon store :
Code :
1
2
3
4
5
6
7
8
var storeRessGridClass = new Ext.data.JsonStore({ 
	storeId: 'storeRessGridClass',
	url: 'asp/webService.aspx',
	root: 'results',
	fields: [
		'idApp', 'IdUnv', 'nameUnv', 'id', 'name', 'description', 'emplacement', 'nombreObj'
	]
});
voici la construction de mon TreeGrid :
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
var gridRessClassUni = new Ext.ux.tree.TreeGrid({
	id: 'gridRessClassUni',
	store: 'storeRessGridClass', 
	border: false,
	loadMask: {msg: 'Chargement ...'}, 
	columns: [ 
		{
			header: 'Nom', 
			width: 200, 
			sortable: true, 
			dataIndex: 'name' 
		},{
			header: 'Description',
			width: 500,
			sortable: true,
			dataIndex: 'description'
		},{
			header: 'Emplacement',
			width: 150,
			sortable: true,
			dataIndex: 'emplacement'
		},{
			header: 'Nombre d\'objet',
			width: 150,
			sortable: true,
			dataIndex: 'nombreObj'
		}
	],
	bbar: {
		xtype: 'paging',
		pageSize: 3,
		store: 'storeRessGridClass',
		displayInfo: true,
		afterPageText: ' sur {0}',
		displayMsg: 'Affichage de {0} à {1} sur {2}',
		emptyMsg: 'Aucune données à afficher'
	}
});
Voici la structure de mon Json retourné :
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
[
    {
        "name": "classe1",
        "description": "description classe",
        "emplacement": "un emplacement",
        "nombreObj": "5",
        "iconCls": "task-folder",
        "id": 1,
        "idApp": 5,
        "idUnv": 11,
        "nameUnv": "UNI_PAR"
    },
    {
        "name": "classe2",
        "description": "description Classe 2",
        "emplacement": "un emplacement",
        "nombreObj": "5",
        "iconCls": "task-folder",
        "id": 2,
        "idApp": 5,
        "idUnv": 11,
        "nameUnv": "UNI_PAR"
    },
    {
        "name": "classe 3",
        "description": "description classe 3",
        "emplacement": "un emplacement",
        "nombreObj": "5",
        "iconCls": "task-folder",
        "id": 3,
        "idApp": 5,
        "idUnv": 11,
        "nameUnv": "UNI_PAR"
    }
]
Sachant que avant de mettre des enfants je voudrais afficher une première liste ^^

Si vous aviez une petite idée : )))
abraxis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 11h53   #2
Membre éclairé
 
Avatar de JulienFio
 
Julien Fiorentino
Inscription : novembre 2007
Messages : 201
Détails du profil
Informations personnelles :
Nom : Julien Fiorentino
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2007
Messages : 201
Points : 336
Points : 336
Bonjour,

Il te manque un élément important dans la structure de ton JSON, c'est le paramètre leaf.
Leaf, false: cet élément possede des fils
Leaf, true: cet élément ne possede pas de fils


Ensuite, essayes de charger tes données avec un treeLoader:


Code :
1
2
3
4
5
storeLoader = new Ext.tree.TreeLoader({
        dataUrl: 'asp/webService.aspx',
        baseParams: 'tes params si tu en as',
       ...
    });
Définition de la racine:
Code :
1
2
3
4
5
6
var root = new Ext.tree.AsyncTreeNode({
        id: '0',
        text: 'source', //texte du noeud
        allowDrag: false,
        allowDrop: false
    });
pour finir, ton treegrid:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
monTreeGrid = new Ext.ux.tree.TreeGrid({
        title: 'mon titre',
        id: 'monId',
        width: ...,
        height: ...,
        renderTo: '...',
        enableDD: true,
        rootVisible: false,
        animate: true,
        enableSort: false,        
        autoScroll: true,
        loader: storeLoader,
        root: root,
        columns: [{  ...
JulienFio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 10h54   #3
Membre confirmé
 
Homme
Étudiant
Inscription : mai 2007
Messages : 249
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2007
Messages : 249
Points : 240
Points : 240
Bonjour,

Je te remercie pour la réponse qui m'a permis d'avancer une petit peu.
Je rencontre par contre une erreur:
Citation:
node.attributes is undefined
if (node.attributes.children) {
Dans le fichier ext-all-debug.js à la ligne 35695
Sachant que je n'est pas touché à ce fichier j'ai du mal à voir ou est mon erreur :/

Pour résumé, j'ai construis mon treeLoader, puis mon treeGrid, puis mon panel (accordéon) sur lequel j'ai un
Code :
1
2
3
4
5
6
7
8
9
10
11
12
listeners: {
	expand: function()
	{
		treeloader.load(
			{
				params: {
					task: 'trucmuche'
				}
			}
		);
	}
}
Mon accordéon contient un items qui est mon tableau.
J'ai fais la même chose avec des tableau simple sans que cela me pose de problème, donc je comprend pas la
abraxis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 11h11   #4
Membre éclairé
 
Avatar de JulienFio
 
Julien Fiorentino
Inscription : novembre 2007
Messages : 201
Détails du profil
Informations personnelles :
Nom : Julien Fiorentino
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2007
Messages : 201
Points : 336
Points : 336
Peux-tu poster ton treegrid, ton treeloader, la définition de ta racine ainsi que l'aspect de ton JSON ?

Visiblement Extjs ne sait pas interpréter les fils de tes noeuds, surement un pb de construction de ton JSON ou au niveau de ton TreeLoader/Racine
JulienFio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 11h22   #5
Membre confirmé
 
Homme
Étudiant
Inscription : mai 2007
Messages : 249
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2007
Messages : 249
Points : 240
Points : 240
Je ne peu malheureusement pas poster le Json car je tombe en erreur avant le retour du serveur donc impossible de l'avoir :/

Voici mon TreeLoader:
Code :
1
2
3
4
5
6
var storeRessGridClass = new Ext.tree.TreeLoader(
	{
		id: 'storeRessGridClass',
		dataUrl: 'asp/webService.aspx'
	}
);
Mon TreeGrid:
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
var gridRessClassUni = new Ext.ux.tree.TreeGrid({ 
	id: 'gridRessClassUni',
	loader: storeRessGridClass,
	border: false,
	rootVisible: false,
	root: '',
	loadMask: {msg: 'Chargement ...'},
	columns: [
		{
			header: 'Nom', 
			width: 200, 
			sortable: true, 
			dataIndex: 'name' 
		},{
			header: 'Description',
			width: 500,
			sortable: true,
			dataIndex: 'description'
		},{
			header: 'Emplacement',
			width: 150,
			sortable: true,
			dataIndex: 'emplacement'
		},{
			header: 'Nombre d\'objet',
			width: 150,
			sortable: true,
			dataIndex: 'nombreObj'
		}
	]
});
Et la racine :
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
...
items: [
	{ 
		xtype: 'panel',
		id: 'ressDescUniListClass',
		title: 'Liste',
		border: false,
		collapsed: true,
		iconCls: 'uni',
		autoScroll: true,
		layout: 'fit',
		listeners: {
			expand: function(obj) { 
				storeRessGridClass.load(
					{
						params: {
							task: 'ressListClass',
							idUser: myCookie.state.monCookie.idUser,
							idApp: ressIdApp.attributes.id,
							idUnv: ressIdUnv,
							start: 0,
							limit: 3
						}
					}
				);
			}
		},
		items: gridRessClassUni
	}
]
[EDIT]
Voici mon Json :
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
[
    {
        "name": "classe1",
        "description": "description classe",
        "emplacement": "un emplacement",
        "nombreObj": 5,
        "leaf": true,
        "id": 1,
        "idApp": 5,
        "idUnv": 11,
        "nameUnv": "FACT_PAR"
    },
    {
        "name": "classe2",
        "description": "description Classe 2",
        "emplacement": "un emplacement",
        "nombreObj": 5,
        "leaf": true,
        "id": 2,
        "idApp": 5,
        "idUnv": 11,
        "nameUnv": "FACT_PAR"
    },
    {
        "name": "classe 3",
        "description": "description classe 3",
        "emplacement": "un emplacement",
        "nombreObj": 5,
        "leaf": true,
        "id": 3,
        "idApp": 5,
        "idUnv": 11,
        "nameUnv": "FACT_PAR"
    }
]
abraxis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 16h57   #6
Membre éclairé
 
Avatar de JulienFio
 
Julien Fiorentino
Inscription : novembre 2007
Messages : 201
Détails du profil
Informations personnelles :
Nom : Julien Fiorentino
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2007
Messages : 201
Points : 336
Points : 336
Essaye de rajouter cette partie:

Code :
1
2
3
4
5
6
7
 
var monRoot = new Ext.tree.AsyncTreeNode({
        id: '0',
        text: 'source', //texte du noeud
        allowDrag: false,
        allowDrop: false
    });
et dans ton treeGrid:
Code :
1
2
3
4
5
6
7
8
var gridRessClassUni = new Ext.ux.tree.TreeGrid({ 
	id: 'gridRessClassUni',
	loader: storeRessGridClass,
	border: false,
	rootVisible: false,
	root: monRoot,
	loadMask: {msg: 'Chargement ...'},
...
JulienFio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 09h24   #7
Membre confirmé
 
Homme
Étudiant
Inscription : mai 2007
Messages : 249
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2007
Messages : 249
Points : 240
Points : 240
Merci pour cette réponse.
Je n'est pas encore testé et je ne pourrais pas tester de suite car je dois finir une autre partie avant ce qui va faire partie d'une autre question ^^
Je posterais ici après avoir tester : )))
abraxis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 12h03   #8
Invité de passage
 
Étudiant
Inscription : septembre 2007
Messages : 4
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2007
Messages : 4
Points : 4
Points : 4
salut abraxis
est ce que tu as réussi à le faire?
est ce que c possible de partager avec nous?
j'essai de faire la meme chose depuis trois semaines mais j'y arrive pas

merci davance
astrocybernaute est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 12h06   #9
Membre confirmé
 
Homme
Étudiant
Inscription : mai 2007
Messages : 249
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2007
Messages : 249
Points : 240
Points : 240
Je suis désolé de ne pas voir répondu mais pour le moment je n'utilise pas cette solution, donc je me suis juste arrêté au test que tu peu voir ci-dessus

Mais je ne ferme pas le post car je retournerais dessus pour arriver à le faire fonctionner.
abraxis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h10.


 
 
 
 
Partenaires

Hébergement Web