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
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>
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
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;
			}
		}
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
 
<input type="checkbox" name="descCheckBoxResult" onchange="displayOrHideColumn('descCheckBoxResult', 'descResult', 'descResultAffichage');" value="checked"/>
je précise que ça marche pas pour autant (la checkbox)

merci de votre aide !