|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 3 ![]() |
Bonjour,
Je me suis lancé dans l'utilisation de L'API Dojo il y a quelques jours et je me retrouve confronté à un problème concernant un formatter que j'utilise dans un TreeGrid. En effet, j'ai construit un dojox.grid.TreeGrid utilisant un store ItemFileReadStore qui me permet d'avoir l'affichage des informations que je désire, ce qui marche bien. J'ai cependant voulu faire évoluer l'affichage pour rajouter des informations au niveau de mes enfants contenus dans les noeuds parents. En gros la structure de mon arbre est la suivante : + Data0 + Data1 + Data2 nbCrash, Devices Code :
Mon problème est qu'au niveau du noeud "nbCrash" je voudrais pouvoir afficher dans mon formatter la valeur de ses noeuds parents pour avoir un lien ayant en paramètre ces valeurs qui sera de la forme : <a href="action.do?param0=data0¶m1=data1¶m2=data2> nbCrash" </a>. Pour celà j'ai implémenté le formatter "nbCrashFormatter" de ma colonne "nbCrash". Mais je n'arrive pas à récupérer les labels de mes noeuds parents. J'ai essayé d'utiliser la méthode store.fetch(query: { ...) mais je n'arrive pas à comprendre comment filtrer sur les enfants. Auriez-vous une idée de comment je devrais attaquer le problème s'il vous plait ? |
||
|
|
00
|
|
|
#2 | ||||
|
Expert Confirmé
![]() ![]() Emmanuel REMY Inscription : novembre 2005 Messages : 2 844 ![]() |
Salut,
J'ai regardé un bon moment mais je n'entrevois pas de solution très simple. Soit tu parcours tes données pour retrouver la bonne arbo (tu peux utiliser aussi JsonPath dans dojox) soit on peut passer par un "path" géré en interne par le treegrid (un élément de la grid va avoir un path du style "1/2/0" pour le premier enfant du troisième niveau du troisème enfant du second niveau pour la seconde entrée du premier niveau, c'est base 0) Le contexte du formater (le this) correspond à la cellule. A partir d'elle tu peux récupérer une propriété grid qui fournit une propriété cachée _by_idty_paths qui elle donnet les path en fonction des ID... des objets. De là tu connait ta position dans l'arbre et alors tu peux faire un: Code :
Code :
ERE
__________________
Quand une tête pense seule, elle devient folle. |
||||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2009 Messages : 3 ![]() |
Bonjour Emmanuel,
Le TreePath que tu proposes me semble une excellente solution. C'est ce dont j'avais besoin. En attendant, par manque de temps j'ai trouvé une solution intermédiaire qui ne me plait pas vraiment : J'ai dupliqué les informations parent dont j'avais besoin au niveau du noeud enfant qui m'intéresse et dans ma définition de ma structure layout au lieu de lui passer la property à afficher, je lui passe "_item" Code :
{field: "_item", name: data2Title, formatter: data2Formatter, noresize: true} Je te remercie de tes efforts. Je marque en résolu |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Emmanuel REMY Inscription : novembre 2005 Messages : 2 844 ![]() |
Re,
C'est effectivement une solution rapide et tranquille de dupliquer les infos. J'y avais pensé mais je l'avais écartée car elle devient vite infernale, surtout si on utilise un autre type de store (JsonRest par exemple). Le principal reste que cela fonctionne avec ta solution ! ERE
__________________
Quand une tête pense seule, elle devient folle. |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com