IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[Struts-Layout] <layout:date> et collections


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut [Struts-Layout] <layout:date> et collections
    Hello les gens,
    quand je mets un <layout:date> dans un <layout:datagrid> ou un <layout:collection> j'ai un rendu avec les colonnes qui se chevauchent.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <layout:collection sortAction="client" styleClass="paire" styleClass2="impaire" height="<%=Constants.MAX_COLLECTION_HEIGHT%>"  bundle="labelScreen" emptyKey="page.struts_layout.collection.vide" property="list" name="couForm" styleClass="FORM">
    				<layout:date property="couDate" bundle="labelScreen" key="page.user.grid.label.compute_date" maxlength="10" size="8" styleClass="DATAGRID" mode="E,E,E" />			
    				<layout:collectionItem sortable="true" title="COU" property="rohTfer" />
    			</layout:collection>
    Est-ce la bonne manière de procéder ?
    Merci pour toutes vos contributions.

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Il faut mettre le tag layout:date dans un tag layout:collectionItem.

    Par contre, la propriété couDate est-elle une propriété de l'ActionForm ou une propriété des objets constituant la collection ?
    Comme l'utilisateur va pouvoir sélectionner une date pour chaque objet de la collection, il va falloir indexer cette propriété.

    soit couDate est une propriété de l'ActionForm par exemple de type String[] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <layout:collection property="list" indexId="index" sortAction="client" styleClass="paire" styleClass2="impaire" height="<%=Constants.MAX_COLLECTION_HEIGHT%>"  bundle="labelScreen" emptyKey="page.struts_layout.collection.vide" styleClass="FORM">
    	<layout:collectionItem title="Date">
    		<layout:date property="couDate[${index}]" bundle="labelScreen" key="page.user.grid.label.compute_date" maxlength="10" size="8" styleClass="DATAGRID" mode="E,E,E" />			
    	</layout:collectionItem>
    	<layout:collectionItem sortable="true" title="COU" property="rohTfer" />
    </layout:collection>
    soit couDate est une propriété des objets constituant la collection list :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <layout:collection property="list" indexId="index" sortAction="client" styleClass="paire" styleClass2="impaire" height="<%=Constants.MAX_COLLECTION_HEIGHT%>"  bundle="labelScreen" emptyKey="page.struts_layout.collection.vide" styleClass="FORM">
    	<layout:collectionItem title="Date">
    		<layout:date property="list[${index}].couDate" bundle="labelScreen" key="page.user.grid.label.compute_date" maxlength="10" size="8" styleClass="DATAGRID" mode="E,E,E" />			
    	</layout:collectionItem>
    	<layout:collectionItem sortable="true" title="COU" property="rohTfer" />
    </layout:collection>

  3. #3
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Ok c'est très clair.
    1- j'ai encore un soucis. Voici le résultat:

    2- Est-il possible en bidouillant le fichier tld de faire en sorte que les datagrid aussi accèptent que leur body contienne quelque chose, autrement dit qu'on puisse mettre un <layout:date/> dedans ?

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    1. Ah oui pardon, dans le code que j'ai posté, j'ai oublié d'ajouter l'attribut layout="false" dans le tag layout:date, afin que le tag ne génère pas le code de disposition HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <layout:collectionItem title="Date">
    	<layout:date property="couDate[${index}]" layout="false" bundle="labelScreen" key="page.user.grid.label.compute_date" maxlength="10" size="8" styleClass="DATAGRID" mode="E,E,E"/>			
    </layout:collectionItem>
    2. Si le tag n'a pas été écrit pour fonctionner avec un body, je ne pense pas que ça puisse fonctionner simplement en modifiant la tld.
    Mais bon, ça vaudrait peut-être le coup de le tester.

  5. #5
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    2_ pas besoin de modifier le tld j'ai remplacé le collectionItem par un datagridText pour mon datagrid et ça marche. Tu m'a mis sur la piste.
    1_ ça marche pour <layout:collectionItem> mais c'est pas encore tout à fait ça pour mon datagrid. Je vous tiens au courant.

  6. #6
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    Voici le résultat:
    imagik.fr
    du code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <layout:datagrid indexId="index" styleClass="DATAGRID" selectionAllowed="true" multipleSelectionAllowed="true" model="datagrid" property="dtg">
     
    				<layout:datagridText width="5" title="COMPUTE DATE">
    				<layout:date mode="R,R,R" maxlength="10" type="date" layout="false" property="list[${index}].computeDate"/>
    				</layout:datagridText>
    Vous remarquerez que le résultat n'est pas au point.

Discussions similaires

  1. [Struts-Layout] fixer l'entete d'une collection
    Par john_wili dans le forum Struts 1
    Réponses: 11
    Dernier message: 10/03/2009, 18h51
  2. [Struts-Layout] un champ modifiable dans une collection
    Par john_wili dans le forum Struts 1
    Réponses: 6
    Dernier message: 14/12/2008, 19h02
  3. [Struts-Layout] un champs modifiable dans une collection
    Par john_wili dans le forum Struts 1
    Réponses: 10
    Dernier message: 24/11/2008, 21h25
  4. Réponses: 3
    Dernier message: 01/08/2008, 13h38
  5. [Struts-Layout] 2 layout:collection imbriqués
    Par logica dans le forum Struts 1
    Réponses: 3
    Dernier message: 15/11/2006, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo