|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre régulier
![]() Lionel ANDREInscription : avril 2005 Messages : 294 ![]() |
Bonjour à tous,
Décidement mes débuts avec Dojo sont chaotiques.Je voudrais pouvoir recharger un widget Tree après un clic sur un bouton. J'ai donc une liste de boutons qui correspondent à la version des données à afficher dans le tree. L'url pour récupérer les données (JSON) va changer en fonction de cette version. Elle est de la forme "plans/v{version}" (par exemple "plans/v1" pour la version 1). Le clic sur le bouton doit donc mettre à jour mon JSonRestStore avec la bonne url puis recharger le widget Tree. Mais je n'y arrive pas... Voici comment je créé mon Store et mon Tree Code :
Code :
this.planItemsStore.target = "ma_nouvelle_url"; Code :
Citation:
|
|||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Emmanuel REMY Inscription : novembre 2005 Messages : 2 844 ![]() |
Salut,
Le code que tu as trouvé est gênant: il fait notamment appel à des fonctions privées. A mon avis l'idéal est de détruire l'ensemble (via l'appel du destroy sur ton tree, puis delete, et enfin même démarche sur le store) et de le refabriquer. Ce n'est pas délirant étant donné qu'il faut de toute façon reconstruire le store et le model puis enfin l'arbre... ERE
__________________
Quand une tête pense seule, elle devient folle. |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Lionel ANDREInscription : avril 2005 Messages : 294 ![]() |
Bonjour,
Reconstruire complètement l'arbre est la 1ère chose que j'ai essayé. Mais cela m'a posé quelques problèmes:
|
|
|
00
|
|
|
#4 | ||
|
Membre régulier
![]() Lionel ANDREInscription : avril 2005 Messages : 294 ![]() |
Bon effectivement j'ai réessayé et ça marche. J'avais dû oublier quelque chose, mais quoi ?
Bref voici comment je procède maintenant : je n'appelle plus de methode refreshTree(), mais uniquement createTree(). Et à chaque appel de createTree() je vérifie que this.planItemsTree n'existe pas déjà, et si c'est le cas je le détruit. Au final voici le résultat : Code :
Merci encore pour ton aide trèèèèès précieuse. |
||
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() ![]() Emmanuel REMY Inscription : novembre 2005 Messages : 2 844 ![]() |
Salut,
Quelques précisions: d'abord attention à ne pas confondre Model et Store. Tu écris: Code :
Ensuite attention à ne pas confondre dojo.data avec dojo.store. Ce sont l'ancienne et la nouvelle API. Or le clearOnClose n'existe pas dans le dojo.store, tu dois donc pouvoir l'enlever, il ne fait ici que décorer Pour être complet on peut noter que la version 1.7 de Dojo ne propose pas une implémentation du Model basée la nouvelle api des store, mais uniquement sur l'ancienne. Dommage, même s'il existe des ponts entre les deux Api. Voilà, l'essentiel reste quand même que ton code fonctionne ! ![]() ERE EDIT: je viens de m'apercevoir que ton code ressemble à un tutorial des Tree avec la 1.6. . Ceci explique peut-être mieux la mise en oeuvre du store que tu as faite
__________________
Quand une tête pense seule, elle devient folle. |
||
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Lionel ANDREInscription : avril 2005 Messages : 294 ![]() |
Bonjour Emmanuel,
Tout d'abord je te souhaite une excellente année 2012 ainsi qu'à tout le forum Développez.com. Je te remercie encore pour tes nombreuses contributions et aides que tu nous apportes. Effectivement j'ai repris le tutorial sur le site officiel de dojo. Ça me paraissait bizarre aussi, mais étant tout nouveau j'ai décidé de lui faire confiance ^^ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com