Comment trier du contenu ?

Écrit par Neil Deakin. Traduit par Alain B. (15/07/2005).
Page originale : http://www.xulplanet.com/tutorials/xulqa/q_sorter.html xulplanet.com

Vous pouvez trier des données dès lors qu'elles sont générées en RDF. Il est habituel de trier du contenu dans un arbre, toutefois vous pouvez trier n'importe quel contenu généré depuis un gabarit.

Vous pouvez utiliser l'attribut sortResource pour spécifier la ressource à trier. Utilisez l'attribut sortDirection pour spécifier l'ordre du tri. Ces deux attributs doivent être présent pour le tri des données.

L'exemple suivant montre le tri de contenu :

Voir

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="sort-window" title="Exemple de trie"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<script>
function changeSort()
{
  // récupère la boîte à trier
  var box = document.getElementById("info");

  // si l'ordre du tri est décroissant, il est modifié en croissant.
  // Sinon, il est défini en décroissant.
  if (box.getAttribute("sortDirection") == "descending")
    box.setAttribute("sortDirection","ascending");
  else box.setAttribute("sortDirection","descending");

  // vous devez reconstruire le contenu après la modification des informations de tri
  box.builder.rebuild();
}
</script>

<button label="Inverse" oncommand="changeSort();"/>

<vbox id="info" datasources="animals.rdf"
      ref="http://www.some-fictitious-zoo.com/mammals" flex="1"
      sortResource="http://www.some-fictitious-zoo.com/rdf#name" sortDirection="ascending">
  <template>
    <label uri="rdf:*" value="rdf:http://www.some-fictitious-zoo.com/rdf#name"/>
  </template>
</vbox>

</window>

Dans cet exemple, les données sont triées par nom (name), comme indiqué par l'attribut sortResource. Toutefois, n'importe quelle propriété peut être utilisée même si elle n'est pas affichée.


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.