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 :

[PrimeFaces 5] Dynamic rows with column


Sujet :

JSF Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 45
    Points
    45
    Par défaut [PrimeFaces 5] Dynamic rows with column
    Bonjour,

    Je suis sur une petite application de lecture d'une base de données. J'aimerais la faire évoluer en présentant une interface plus agréable pour l'utilisateur.

    Mon interface précédente était constituée d'un arbre (Tree) et une table (DataTable).
    On sélectionne dans le Tree et les infos sont affichées dans le DataTable.

    Aujourd'hui je souhaite faire disparaître mon arbre pour n'avoir qu'une table.

    Je souhaiterais avoir quelque chose qui se présente comme ceci:

    Date Nom Info Info Info
    Info Info Info
    Nom Info Info Info
    Date Nom Info Info Info
    Info Info Info

    J'espère que mon schéma est compréhensible...

    Sinon niveau code j'ai un début avec ça:
    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
    <p:dataTable rowIndexVar="currRow" var="row" value="#{..}">
        <p:column id="date" headerText="Date">
            <h:outputText value="#{row.date}" rendered="#{currRow lt 1}" />
        </p:column>
        <p:column id="nom" headerText="Serveur">
            <h:outputText value="#{row.nom}" rendered="#{currRow lt 1}" />
        </p:column>
        <p:column id="..." headerText="Package">
            <h:outputText value="#{row.info}" />
        </p:column>
        <p:column id="..." headerText="Heure">
            <h:outputText value="#{row.info}" />
        </p:column>
        <p:column id="..." headerText="Type">
            <h:outputText value="#{row.info}" />
        </p:column>
        <p:column id="..." headerText="etat">
            <h:outputText value="#{row.info}" />
        </p:column>
    </p:dataTable>
    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Bonjour,
    Citation Envoyé par kayri Voir le message
    Quelqu'un saurait-il m'indiquer comment faire ?
    Pour faire la présentation que tu a décris, je ne vois qu'une seule façon de le faire, c'est en mettant des datatable dans les colonnes ou il y aura plusieurs ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <h:column>
        <h:dataTable var="infos" value="#{row.infos}">
            <h:column>
                <h:outputText value="#{infos.heure}"/>
            </h:column>
            <h:column>
                <h:outputText value="#{infos.type}"/>
            </h:column>
            <h:column>
                <h:outputText value="#{infos.etat}"/>
            </h:column>
        </h:dataTable>
    </h:column>
    Cependant, je vois deux autres présentation possible :



    Maintenant si je reprend ton exemple et dans l'hypothèse que tu n'ai pas d'autres lignes a regrouper tu peux très bien mixé les solutions !
    En effet, on peut très bien envisager d'utiliser une expension sur les date puis une subtable sur les noms.
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 153
    Points : 105
    Points
    105
    Par défaut
    Je pense que l'utilisation d'un DataTable - RowExpansion pourra résoudre ton problème. regarde du côté de la documentation de primesface pour la mise en oeuvre.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    En gros, tu veux cacher la valeur dans les colonnes 1 et 2 si elles sont identiques à la valeur précédente, c'est bien ça ?
    Si oui, le rendered="" va bien, il te suffit de mettre une méthode qui ira tester l'égalité (ou non) par rapport à l'élément précédent.
    Avec Primefaces ça aurait été plus facile parce que tu as accès à l'index de l'élément en cours, avec la balise <h:dataTable> il faudra procéder autrement pour récupérer l'enregistrement précédent dans la liste (par exemple ajouter l'indice dans ton bean)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    .... Pourquoi je n'y ai pas pensé avant...
    Je me cassais la tête avec des <row> et <column> alors qu'il suffisait d'utiliser un subtable.. Bon je ne sais pas encore vraiment comment le faire fonctionner avec mon appli. ais c'est une piste sérieuse

    Merci beaucoup pour ce coup de pouce!


    Par contre, une petite question me vient à l'esprit. (ne me blâmez pas par pitié!)

    Quelle est la meilleure solution, utiliser plusieurs requêtes sql pour travailler.
    Ou faire un select * puis travailler les données côté serveur? :o

    Je pense plus à la première solution, mais j'en suis pas sûre à 100%..


    Encore merci

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par kayri Voir le message
    .... Pourquoi je n'y ai pas pensé avant...
    Je me cassais la tête avec des <row> et <column> alors qu'il suffisait d'utiliser un subtable.. Bon je ne sais pas encore vraiment comment le faire fonctionner avec mon appli. ais c'est une piste sérieuse
    Merci beaucoup pour ce coup de pouce!
    Bin en fait, on est la pour ça .... aider

    Citation Envoyé par kayri Voir le message
    Quelle est la meilleure solution, utiliser plusieurs requêtes sql pour travailler.
    Ou faire un select * puis travailler les données côté serveur? :o
    Je pense plus à la première solution, mais j'en suis pas sûre à 100%..
    Et bien, je dirais que cela dépend du nombre d'enregistrements d'une part et d'autre part, même si ce nombre d'enregistrements est faible pour le moment, va t'il augmenter et si oui dans quelles proportions !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 59
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    Et bien, je dirais que cela dépend du nombre d'enregistrements d'une part et d'autre part, même si ce nombre d'enregistrements est faible pour le moment, va t'il augmenter et si oui dans quelles proportions !
    Je dois être au alentour de 500 - 1000 lignes de données.

    Du coup, je pense faire un mixe des deux.

    Merci pour l'info, c'est bon à savoir qu'il n'y ai pas de standard à suivre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. No row with the given identifier exists
    Par thaundeadboss dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/07/2009, 22h15
  2. No row with the given identifier exists
    Par *alexandre* dans le forum Hibernate
    Réponses: 0
    Dernier message: 14/10/2008, 14h35
  3. Réponses: 1
    Dernier message: 30/06/2008, 17h29
  4. Row Header + Column Header dans un JTABLE
    Par crakos dans le forum Composants
    Réponses: 3
    Dernier message: 06/08/2007, 18h20

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