Bonjour !
Une fois de plus je viens quemander votre aide au sujet des <layout: date>
En fait j'ai un formulaire présenté sous forme de tableau dont les lignes peuvent etre ajoutée et supprimée grace a une fonction javascript.
Chaque ligne du tableau est composée de differents elements de type : <nested:text> ou <nested:select> mais aussi date avec <layout: date>.
Lorsqu'on clique sur l'icone calendrier située a coté du champ date, s'affiche un calendrier me permettant de selectionner une date par simple clic.
Petit extrait :
Le soucis est que lorsque je supprime la premiere ligne du tableau, tous les calendriers des champs date des lignes suivantes ne fonctionnent plus (non affichage du gros calendrier par clic sur l'icone calendrier).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <TD align="center"><nested:text property="champ1" size="2" maxlength="2" readonly="true"></nested:text></TD> <TD align="center"> <layout:date disabled="false" maxlength="10" size="10" layout="false" property="champ2[${index}].unElementChamp2" patternKey="format_date" calendarTooltip="msg_selectionner_date" mode="E,E,E" startYear="<%=anneeDebut %>" endYear="<%=anneeFin %>"/> </TD>
En fouillant le code généré grace à Firebug il apparait que le premier <layout : date> présent sur la page contient certaines infos utilisées par les autres balises <layout: date>. Du coup j'ai calé une table cachée contenant un <layout : date> au tout début de ma JSP afin de contourner le problème
Petit extrait :
Ca marche nikel... sous Firefox. Je peux supprimer n'importe quelle ligne, tous mes calendriers restent fonctionnels. Pour ce qui est de IE... marche pÔ marche pÔ marche pÔ
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <table style="visibility: hidden; "> <tr> <td> <layout:date disabled="false" maxlength="10" size="10" layout="false" property="nimporteQuelChampDuFormulaire" patternKey="format_date" calendarTooltip="msg_selectionner_date" mode="E,E,E" startYear="<%=anneeDebut %>" endYear="<%=anneeFin %>"/> </td> </tr> </table>
Donc voila en gros le dilemme..
J'ai plusieures solutions en tete mais je ne sais pas comment les implementer :
- solution 1 : Faire que chaque <layout : date> soit aussi complet que la premiere occurence de <layout:date> (au niveau du code html généré)
- solution 3 : Trouver une astuce pour que IE construise ma table de visibiliy : hidden et ne l'affiche pas.
- solution 2 : Faire que IE interprete le code comme Firefox
Si qqun a une idée de comment procéder pour que ca tourne sur les deux navigateurs merci de me faire signe !
Partager