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

JSF Java Discussion :

[Richface: datatable] Mettre une ligne sur deux lignes


Sujet :

JSF Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [Richface: datatable] Mettre une ligne sur deux lignes
    Bonjour,

    J'ai une table qui doit contenir plusieurs produit (date, nom, type)

    Après j'ai une récéption de la table créé ou je peux changer les champs, tout en gardant les anciens en base...

    J'ai donc ajouté dans ma Table Produit (date, nom, type, dateValidation, nomValidation, typeValidation)

    A l'affichage de ma table, j'aimerais que les champs soit les uns en dessous des autres... dateValidation, sous date, etc

    C'est à dire afficher une ligne de ma datatable sur deux lignes ?

    Est ce du css, y a t'il un attribut qui permets de faire cela ?

    Merci.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    En fait, j'ai pensé à faire comme cela, mais je ne sais pas si c'est réalisable...

    Ce que je veux c'est lister, une table de Produit de plusieurs produits, et entre chaque produit, insérér une ligne de validation, avec les mêmes champs mais éditables ...

    Donc actuellement, j'ai dupliqué les champs en base, en ajoutant le suffixe Validation, et je peux donc afficher le tout sur une ligne ...

    Mais niveau interface, il faut que les champs lister et ceux editables, soit les uns en dessous des autres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ligne produit 1(date, nom, type)
    ligne validation 1(dateValidation, nomValidation, typeValidation)
    ligne produit 2(date, nom, type)
    ligne validation 2(dateValidation, nomValidation, typeValidation)
    ...
    ligne produit n(date, nom, type)
    ligne validation n(dateValidation, nomValidation, typeValidation)
    Donc pour moi, le plus pratique, est de tout mettre dans la même table produit (date, nom, type, dateValidation, nomValidation, typeValidation)

    et de lui dire, au bout de ma 3ème colonne, tu ré affiches sur une autre ligne...

    Une ligne fera donc deux lignes.

    Est ce possible ?

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Quelle librairie de composants utilises-tu ? Si c'est Richfaces, peut-être que la subTable pourrait répondre à tes besoins ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Oui richface, comme indiqué dans le titre !

    Je ne connais pas, à quoi cela sert concrétement ?

    Ok, merci pour le lien, en fait cela me permet de mettre plusieurs colonnes dans une ?

    Ca va répondre à une partie de mon besoin mais pas à la totalité je pense !

  5. #5
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Une datatable te permet de créer un tableau où chaque ligne correspond à un élément d'une List donnée.
    Une subTable permet, pour chaque élément de cette List, de recréer un sous tableau avec autant de ligne que tu le souhaites. Dans ton cas, cette sous liste peut être limitée à 1 élément...

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Bon, je relis ton besoin, il y a aussi d'autres façons de faire :

    Sauter les lignes en utilisant <br/>. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <rich:column>
        <f:facet name="header">Nom</f:facet>
        <h:outputText value="#{record.nom}"/>
        <br/>
        <h:inputText value="#{record.nomValide}"/>
    </rich:column>
    Une variante (un poil plus coriace) : au lieu d'itérer sur ta liste d'objets, tu crées la même liste où chaque élément va être dupliqué. Pour chaque élémént, l'objet aura des valeurs fixes (propriété fixedValues à true), puis l'élement suivant aura les mêmes valeurs, mais éditables cette fois-ci (propriété fixedValues à false). Après, tu fais afficher les textes et les inputs en alternance en jouant sur l'attribut rendered :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <rich:column>
        <f:facet name="header">Nom</f:facet>
        <h:outputText value="#{record.nom}" rendered="#{record.fixedValues}"/>
        <h:inputText value="#{record.nomValide}" rendered="#{not record.fixedValues}"/>
    </rich:column>
    Enfin, si cela est possible, tu peux utiliser le <rich:inplaceInput>, ça peut avoir un rendu un peu Web 2.0 En gros, il s'agit d'un champ texte "normal", sauf qu'il est éditable... A voir sur la démo ici (tu as même un exemple au sein d'une datatable).

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci de ton aide, en effet j'ai aussi utilisé cette façon, la 1ère et la 2ème ...

    Mais au final, "Subtable" réponds bien à mon besoin, sauf que derrière, je n'ai pas pu mettre une datatable, dans une colonne de subtable, et là cela m'a un peu handicapé ...

    On ne peut pas ? ou ai-je mal codé ?

Discussions similaires

  1. comment mettre une hierarchie sur 1 ligne ?
    Par gg2vig dans le forum SQL
    Réponses: 3
    Dernier message: 20/03/2009, 16h35
  2. Données d'une ligne sur deux lignes ?
    Par roman67 dans le forum SQL
    Réponses: 11
    Dernier message: 21/10/2008, 17h36
  3. [XSL:FO] fusionner une cellule sur deux lignes.
    Par Luc Hermitte dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 03/07/2008, 11h33
  4. Réponses: 10
    Dernier message: 23/02/2008, 19h01
  5. Texte de la barre de titre d'une Jframe sur deux lignes
    Par radzar dans le forum Agents de placement/Fenêtres
    Réponses: 17
    Dernier message: 01/09/2007, 01h10

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