Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Classer les colonnes d'un tree en ascendant et descendant seulement

Envoyé par : kofkof

Date : 12/06/2009 08:16

Salut,

J'ai un tree xul dont je voudrais pouvoir classer les colonnes par ordre croissant et décroissant lorsque je clique sur leur entête. Le comportement habituel de n'importe quel tableau dans une interface graphique, quoi.

J'ai mis l'attribut sort sur mes treecol, et ça marche super. SAUF que chaque clic alterne entre classement ascendant, descendant, ... et non classé ("natural order"), que je ne veux absolument pas.

Il doit bien y avoir un moyen d'avoir seulement ascendant/descendant, mais après avoir épluché la doc XUL sur MDC, je ne trouve pas comment désactiver ce classement "naturel". Quelqu'un aurait-il une idée ?

# Re: Classer les colonnes d'un tree en ascendant et descendant seulement

Envoyé par : mistervince

Date : 12/06/2009 10:25

salut, j'ai aussi voulu avoir ce comportement et voilà comment je fait :

  • intercepter le click sur les treecol où le tri est possible
(...)
    <!--les attributs habituels pour trier + onclick-->
    <treecol id="colDefSort" label="trié au début"
             sortDirection="ascending"
             sort="mon_champ_rdf_pour_trier_def"
             onclick="sortTree(event)"/>
    <!--une autre colonne avec tri (la même chose sans attribut sortDirection)-->
    <treecol id="colToSort" label="à trier"
             sort="mon_champ_rdf_atrier"
             onclick="sortTree(event)"/>
     <!--une colonne sans tri-->
     <treecol id="colNoSort" label="pas de tri"/>
(...)
  • forcer le tri à éviter l'ordre nauturel en javascript, dans le onclick (le tri s'effectue après)
function sortTree(event) {
    var col = event.target;
    var direction = col.getAttribute("sortDirection");
     
    if (direction == "descending") {
          col.setAttribute("sortDirection", "natural");
          //le tri passera ainsi directement dans l'ordre suivant "natural",
          //c'est-à-dire "ascending", sans passer de "descending" à "natural"
    }
}

Je reconnais que c'est un peu de la bidouille, mais ça marche.

vincent

# Re: Classer les colonnes d'un tree en ascendant et descendant seulement

Envoyé par : kofkof

Date : 12/06/2009 10:32

c'est un peu de la bidouille, mais ça marche.

C'est le principal :-) Un grand merci pour le tuyau !

Quand même bizarre qu'il y ait pas moyen de désactiver ça de manière native en XUL. Le classement naturel, c'est pas un truc qui doit servir beaucoup. M'enfin...

# Re: Classer les colonnes d'un tree en ascendant et descendant seulement

Envoyé par : orphan

Date : 03/10/2011 12:34

slt, j'ai utilisé ton code pour faire un tri par colonne mais mon problème est que mes données ne viennent pas de RDF mais plutot j'utilise Javascript alors j'aimerais savoir ce qu'il faut donner à l'attribut sort, dans ce cas?

# Re: Classer les colonnes d'un tree en ascendant et descendant seulement

Envoyé par : thx1138

Date : 03/10/2011 22:12

Pourquoi ne pas simplement relancer ton script de remplissage du tree ?

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.