Bonjour,
Je suis entrain de m'arracher les cheveux.
J'applique une transformation XSLT à un fichier XML par composant Java. Sur mes entêtes de colonne, j'ai un bouton qui me permet de trier mes données. Le tri ascending fonctionne sur toutes les colonnes mais pas le tri descending...
Pourtant j'ai posé des alertes qui m'indiquent bien à chaque chargement de la page le bon champ trié et le bon sens de ce tri.
Ci-dessous une partie du code, pour voir si quelqu'un peut me donner une piste... Mais j'ai bien peur que ce ne soit pas très lisible...
Peut être un XML pour que ce soit plus clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="ISO-8859-1" indent="yes"/> <!-- Parametres d entrees --> <xsl:param name="champTri"/> <xsl:param name="sensTri"/> ... <!-- Fin Parametres d entrees --> <xsl:template match="root"> <html> <head> ... <xsl:variable name="newSensTri"> <xsl:if test="$sensTri=''">ascending</xsl:if> <xsl:if test="$sensTri='ascending'">descending</xsl:if> <xsl:if test="$sensTri='descending'">ascending</xsl:if> </xsl:variable> <!-- Champs caches --> <input type="hidden" name="ChampTri" value="{$champTri}"/> <input type="hidden" name="SensTri" value="{$sensTri}"/> <input type="hidden" name="FilterValue" value="{$filterValue}"/> <input type="hidden" name="FileName" value="{$fileName}"/> ... <tr> <table cellspacing="0" cellpading="0" class="tabEntCol"> <tr> <td width="100%" nowrap="nowrap">Libellé long</td> <td> <script>btnTriJS("btnTri0",0,2,0,"tri('Libelle-long','<xsl:value-of select="$newSensTri"/>')");</script> </td> </tr> </table> <!-- Pour Chaque ligne --> <xsl:for-each select="*[child::*[name()=$filterKey and contains(text(),$filterValue)] and position() > $enregDeb and position() < $enregDeb+$nbEnregPage+1]"> <!-- tri --> <xsl:sort select="*[name()=$champTri]" order="{$sensTri}"/> ... </xsl:for-each> ... </xsl:template> </xsl:stylesheet>
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?xml version="1.0" encoding="UTF-8"?> <root> <Structure> <ID>|D_STRUCT060000000019|1|</ID> <Libelle-long lien="1">salvetat</Libelle-long> <Code-categorie visible="0">EHPADC</Code-categorie> <Libelle-Categorie>EHPAD commercial</Libelle-Categorie> </Structure> <Structure> <ID>|D_STRUCT060000000017|1|</ID> <Libelle-long lien="1">Bernard Menez</Libelle-long> <Code-categorie visible="0">ACCOMPS</Code-categorie> <Libelle-Categorie>Accompagnement social</Libelle-Categorie> </Structure> <Structure> <ID>|D_STRUCT060000000016|1|</ID> <Libelle-long lien="1">SAVS test bilan</Libelle-long> <Code-categorie visible="0">ACCOMPS</Code-categorie> <Libelle-Categorie>Accompagnement social</Libelle-Categorie> </Structure> </root>
Partager