Envoyé par : Alexandre
Date : 17/11/2009 16:55
Bonjour,
J'ai un tableau que je remplis avec des données issues d'un RDF. la dernière colonne de mon tableau est de type checkbox. Je n'arrive pas à utiliser les évènements (onclick, oncommand, onchange, etc...) sur les cellules contenant les chekbox. J'aimerais pouvoir déclencher un évènement à chaque fois que je coche ou décoche une checkbox de mon tableau.
Voici un extrait de mon code :
<tree id="tree_export" flex="1" ref="urn:data:row" datasources="" seltype="single" editable="true"> ... ... <treecol id="import_caracteristique" type="checkbox" label="A importer" editable="true" /> </treecols> <template> <rule> <treechildren> <treeitem uri="rdf:*" checked="true"> <treerow> ... ... <treecell value="rdf:http://dummy/rdf#import" oncommand="selectionCheckBox()"/> </treerow> </treeitem> </treechildren> </rule> </template> </tree>
Si vous avez des idées, n'hésitez pas, merci d'avance
Envoyé par : mistervince
Date : 18/11/2009 11:03
Voici ce que je sais. (si il y a plus simple ou plus 'propre', je suis preneur aussi...).
Pour cela :
function doLoad() { document.getElementById("tree_export").addEventListener("DOMAttrModified", doCheckboxModified, false); }
function doCheckboxModified(event) { if ((event.target.localName == "treecell") && (event.attrName == "value")) { //attention si tu modifies l'attribut value sur une autre colonne //ceci sera exécuté, il faut peut-être améliorer les conditions selon les cas //(en utilisant l'id de la colonne par exemple) // //event.prevValue te donne l'état (true ou false) de la case à cocher avant modification //event.newValue te donne le nouvel état // } }
J'espère que ça te permettra d'avancer un peu.
Vincent
Envoyé par : Alexandre
Date : 19/11/2009 15:23
Je récupère en effet les évènements au niveau de l'arbre. Je m'en suis sorti en en utilisant l'évènement onClick et un objet de type treeBoxObject.
treeBoxObjet possède une méthode "getCellAt();" qui permet de récupérer la ligne, la colonne et l'élément fils du point cliqué.
A partir de cela, je peux déterminer si le "clic" a été fait dans la bonne colonne, et si c'est le cas, je peux récupérer l'état de la cellule cliquée "tree.view.getCellValue(row.value,col.value)".
Et le tour est joué.
Merci pour ta réponse, j'ai l'impression que l'utilisation d'un écouteur rend le code plus propre.
Envoyé par : mistervince
Date : 20/11/2009 10:27
salut
Utiliser onclick permet de réagir uniquement au clic de l'utilisateur. Avec ma méthode, je pouvais en plus réagir quand l'état était changé par un script (ce dont j'avais besoin pour je ne sais plus quelle raison). Si tu n'as pas besoin de ça, ta méthode est tout à fait suffisante.
vincent
Envoyé par : thefab
Date : 20/11/2009 23:07
J'ai un vague souvenir qui fallait forcer le fait que les évènements soient propagés dans une ligne du tree avec "allowevents"... Peut-être une piste...
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.