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 3.2 / JSF 2] Identifiants dynamiques


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Par défaut [PrimeFaces 3.2 / JSF 2] Identifiants dynamiques
    Bonjour à tous,

    Je développe actuellement une application avec JSF 2 et Primefaces 3.2.

    Dans l'une de mes pages, j'ai ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <ui:repeat value="#{list}" var="objet" varStatus="status">
        <p:dataTable id="data#{status.id}" ...>
            ...
            <p:rowExpansion>
                ...
            </p:rowExpansion>
        </p:dataTable>
    </ui:repeat>
    Sur ma page j'ai donc par exemple plusieurs tableaux de plusieurs lignes générés.

    Lorsqu'un seul tableau est généré, je n'ai aucun soucis particulier, les <p:rowExpansion> marchent sans soucis. Mais lorsque j'ai par exemple 2 tableaux, c'est la catastrophe. les <p:rowExpansion> du second tableau sont en fait un <p:rowExpansion> du premier tableau...

    Je pense que c'est un problème d'identifiant. En effet, les identifiants qui sont générés automatiquement par PrimeFaces sont les mêmes pour mes 2 tableaux.

    J'aimerais donc pouvoir géré dynamiquement les identifiants de mes dataTables, mais je n'y arrive absolument pas.

    Par exemple avec le code suivant tous les dataTables ont l'id "data" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ui:repeat value="#{list}" var="objet" varStatus="status">
        <p:dataTable id="data#{status.index}" ...>
        </p:dataTable>
    </ui:repeat>
    Avec le code suivant, j'obtiens une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ui:repeat value="#{list}" var="objet" varStatus="status">
        <p:dataTable id="#{status.index}" ...>
        </p:dataTable>
    </ui:repeat>
    Voici l'erreur : java.lang.IllegalArgumentException: Empty id attribute is not allowed

    Comment peut-on générer dynamiquement un identifiant ?

    Merci d'avance pour votre aide !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Si je ne me trompe pas le soucis vient du fait, que la génération des id dans ta page (donc via l'utilisation de ton ui:repeat) est faite dans une phase antérieure à la récupération de tes données dans ton Bean.

    Dans le cas d'un ui:repeat, ou la génération des id de tes datatables est conditionnelle de la récupération des données, il parait donc normal que tu ais un problème.

    As-tu essayé de supprimer le tag id de ton composant datatable ? Quels ids cela génére ? As-tu toujours ton problème avec les rowExpansion ?
    Car normalement, de base, les ids sont attribués par défaut par l'index de ton ui:repeat.

    Le soucis que cela te posera est, si tu souhaites accéder à un tableau précisément.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/12/2012, 17h44
  2. Réponses: 2
    Dernier message: 05/09/2012, 21h26
  3. Identifiants dynamiques dans un ui:repeat
    Par grb85 dans le forum JSF
    Réponses: 0
    Dernier message: 14/01/2011, 12h58
  4. JSF selectOneListbox chargé dynamiquement
    Par xadimousalih dans le forum JSF
    Réponses: 2
    Dernier message: 24/10/2008, 15h07
  5. [vb.net] Identifiant dynamique
    Par ricil78 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/05/2008, 23h42

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