Bonjour,
j'ai eu à réaliser ce genre de plier/déplier lors d'un projet cocoon forms. Je crois qu'il n'y a pas de solution simple.
La solution choisie a consisté a rajouter un élément de formulaire de type booléen à chaque noeud désiré. Ce booléen signifie 'ouvert' ou 'fermé' pour le noeud. (cela permet de conserver l'état des "pliages" lors d'un aller-retour serveur)
Ensuite, il faut donner un aspect particulier à ce boolean (car on ne désire pas afficher une case à cocher) en créant un nouveau styling: celui-ci affichera un plus ou un moins selon le cas.
Enfin, la zone qui doit se fermer et s'ouvrir doit posséder elle-aussi un styling particulier qui va consister à lire la valeur du booléen qui lui est rattachée et à s'afficher ou se cacher (au moyen d'une balise style='display: none' par exemple)
Telle qu'elle est décrite ici, cette technique propose de faire un aller-retour serveur à chaque fois que l'on désire plier/déplier. Il est possible en écrivant un peu de javascript de la rendre utilisable sans aller-retour.
Il va de soit, qu'il ne faut pas réaliser de mapping de ce champ booléen, puisque généralement on ne désire pas sauvegarder la configuration de "pliage" des noeuds.
Raphaël FRANCHET Tel: +33 (0) 561 007 347
Anyware Technologies http://www.anyware-tech.com Tel: +33 (0) 561 005 290
Cathérine GOURGUET a écrit :
Bonjour,
j'ai une arborescence à faire (genre thème/sous-thème) avec les cocoon forms, et je me demandais s'il existait un genre de plier/déplier pour les afficher, étant donné qu'il y a beaucoup de thèmes, et que certains thèmes ont beaucoup de sous-thèmes.
J'avais pensé à un repeater dans un repeater. C'est possible ? Il y a mieux ?
Catherine
--------------------------------------------------------------------- Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/ Pour vous desinscrire : mailto:[EMAIL PROTECTED] Autres commandes : mailto:[EMAIL PROTECTED]
--------------------------------------------------------------------- Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/ Pour vous desinscrire : mailto:[EMAIL PROTECTED] Autres commandes : mailto:[EMAIL PROTECTED]