bonjour à tous,
j'essaie de créer un xslt qui met en forme un xml (normal) avec des fonction javascript qui permettront d'afficher ou faire disparaitre certaines colonnes d'un tableau.
Le problème est que je n'arrive qu'à supprimer la colonne voulue mais seulement pour la première ligne.
sauriez vous comment faire pour appliquer le même effet sur toutes les lignes?
voici la partie XSLT permettant d'afficher la ligne contenant les colonnes que je voudrais faire disparaitre
voici le javascript que j'ai fait pour faire disparaitre la colonne voulue
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 <xsl:for-each select="reportRG/rule"> <xsl:if test="functionnals"> <tr class="normal"> <td class="RG"><xsl:value-of select="@name"/></td> <td id="descResultAffichage"><xsl:value-of select="functionnals/functionnal/@description"/></td> <td><xsl:value-of select="functionnals/functionnal/@file"/></td> <td> <xsl:for-each select="methods/method"> <p class="normal"><xsl:value-of select="@methodName"/></p> </xsl:for-each> </td> <td class="resultOk"> <xsl:for-each select="tests/test"> <xsl:if test="@result = 'Passed'"> <p class="normal"><xsl:value-of select="@methodName"/></p> </xsl:if> </xsl:for-each> </td> <td class="resultInconclusive"> <xsl:for-each select="tests/test"> <xsl:if test="@result = 'Inconclusive'"> <p class="normal"><xsl:value-of select="@methodName"/></p> </xsl:if> </xsl:for-each> </td> <td class="resultFailed"> <xsl:for-each select="tests/test"> <xsl:if test="@result = 'Failed'"> <p class="normal"><xsl:value-of select="@methodName"/></p> </xsl:if> </xsl:for-each> </td> </tr> </xsl:if> </xsl:for-each>
et pour finir voici la checkbox qui permet de faire disparaitre ou apparaitre la 2eme colonne
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
51
52 function afficheId(baliseId) { if (document.getElementById) { if(document.getElementById(baliseId) != null) { document.getElementById(element).style.visibility='visible'; document.getElementById(element).style.display='block'; } } } function cacheId(baliseId) { if (document.getElementById) { if(document.getElementById(baliseId) != null) { document.getElementById(element).style.visibility='hidden'; document.getElementById(element).style.display='none'; } } } /* permet d'afficher une colonne*/ function columnDisplay(idBalise, idBaliseAffichage) { afficheId(idBalise); afficheId(idBaliseAffichage); } /* permet de cacher une colonne */ function columnHide(idBalise, idBaliseAffichage) { cacheId(idBalise); cacheId(idBaliseAffichage); } /* permet de cacher une colonne si elle est affichée et inversement*/ function displayOrHideColumn(idCheckBox, idBalise, idBaliseAffichage) { if(idCheckBox.checked) { columnHide(idBalise,idBaliseAffichage); idCheckBox.checked = false; } else { columnDisplay(idBalise,idBaliseAffichage); idCheckBox.checked = true; } }
je précise que ça marche pas pour autant (la checkbox)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<input type="checkbox" name="descCheckBoxResult" onchange="displayOrHideColumn('descCheckBoxResult', 'descResult', 'descResultAffichage');" value="checked"/>
merci de votre aide !
Partager