Bonjour,
J'ai une contrainte assez forte sur un tableau dynamique et je ne m'en sort pas. Pourtant je suis persuadé que je ne suis pas loin de la solution.
Contexte :
Une contrainte graphique me force a faire un tableau dynamique de cette forme la (cf piece jointe)
Le code correspondant donne ca :
Mon probleme est que j'utilise deux types d'objet différents : une Personne et une Compétence.
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
53
54 <table width="100%" border="1" cellspacing="0" cellpadding="0"> <tr> <td>Personne</td> <td>Code</td> <td>Compétence</td> <td>Date effet</td> <td>Date fin</td> <td> </td> </tr> <tr> <td rowspan="3">XXXX</td> <td>0001</td> <td>Libellé 1</td> <td>01/01/2005</td> <td>01/01/2005</td> <td rowspan="3">Lien</td> </tr> <tr> <td>0002</td> <td>Libellé 2</td> <td>01/01/2005</td> <td>01/01/2005</td> </tr> <tr> <td>0003</td> <td>Libellé 3</td> <td>01/01/2005</td> <td>01/01/2005</td> </tr> <tr> <td rowspan="1">YYYY</td> <td>0001</td> <td>Libellé 1</td> <td>01/01/2005</td> <td>01/01/2005</td> <td rowspan="1">Lien</td> </tr> <tr> <td rowspan="2">ZZZZ</td> <td>0003</td> <td>Libellé 3</td> <td>01/01/2005</td> <td>01/01/2005</td> <td rowspan="2">Lien</td> </tr> <tr> <td>0004</td> <td>Libellé 4</td> <td>01/01/2005</td> <td>01/01/2005</td> </tr> </table>
Ce tableau contient donc une Collection de Personnes qui elle même contient une Collection de Compétence.
Jusque la tout va bien, Je sais faire une Iterate dans un Iterate, mais la ou ca se complique, c'est pour renseigner le nombre qui doit se trouver dans le rowspan et surtout ne mettre le rowspan que la premiere fois.
Voila ce que cela donne pour l'instant (mon problème est en commentaire dans le code):
Bien sur vous aurez compris que mon but n'est pas de faire du scriptlet.
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 <table bgcolor="#00000" cellspacing="1" cellpadding="0" border="0"> <tr bgcolor="#D8D8D8"> <td width="60" align="center">Personne</td> <td width="80" align="center">Code</td> <td width="200" align="center">Compétence</td> <td width="150" align="center"> </td> </tr> <logic:present name="${form}" property="personnes"> <logic:iterate id="aPersonne" property="personnes" name="${form}"> <logic:iterate id="comp" property="competences" name="aPersonne"> <tr bgcolor="#D8D8D8"> <!-- Ici j'ai une méthode pour récupérer la taille de la collection --> <bean:define id="size" property="competencesSize" name="aPersonne"/> <!-- Ici je ne sais comment renseigner rowspan Mais je ne sais pas comment ne le déclencher qu'à la premiere Iteration --> <td align="center" rowspan="<bean:write property="competencesSize" name="aPersonne"/>"><bean:write property="libelle" name="aPersonne"/></td> <td width="84" align="center"><bean:write property="code" name="comp"/></td> <td width="200" align="center"><bean:write property="libelle" name="comp"/></td> <!-- Même problème qu'avant --> <td align="center">Lien</td> </tr> </logic:iterate> </logic:iterate> </logic:present> </table>
Merci d'avance pour vos réponses eclairées.
Partager