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 :

selectBooleanCheckbox si dans une liste


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 64
    Par défaut selectBooleanCheckbox si dans une liste
    Bonjour,

    J'ai un objet A qui a une liste d'objet B.
    A->[B1,B3]

    J'affiche une liste d'objet B pour un objet A avec une case a cocher devant :
    A
    -B1
    -B2
    -B3
    ...

    J'aimerais que si l'objet se trouve dans la liste de A, la case à cocher soit sélectionnée.
    Donc dans l'exemple B1 et B3 soient sélectionnées et pas les autres.

    Une idée?...

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour,
    l'EL ne permet (malheureusement) pas d'appelmer des fonctions avec des paramètres, mais tu peux émuler ça avec un Map.

    Dans ton managed bean, tu as une liste de B, qu'on appelera bs et un objet a de type A.
    On déclare aussi un Map<B, Boolean> selection;
    quand l'utilisateur sélectionne a, tu dois renseigner les valeurs de la Map comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(B b: bs){
      if(a.getBs().contains(b))
        selection.put(b, Boolean.TRUE);
      else
        selection.put(b, Boolean.FALSE);
    }
    Ensuite, dans ta page JSF, tu fais pointer la valeur de tes CheckBox vers le Map, comme ceci:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <h:dataTable value="managedBean.bs" var="b">
      <h:column>
        <h:selectBooleanChechbox value="managedBean.selection[b]" />
      </h:column>
    </h:dataTable>

    Remarques que j'ai pas testé ce code, mais l'idée est là

  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 : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    l'EL ne permet (malheureusement) pas d'appelmer des fonctions avec des paramètres...
    En effet, l'EL "de base" n'est malheureusement pas toujours suffisament puissante pour faire ce que l'on désire vraiment.
    Une alternative est d'utiliser EL Functor, qui lui, permet d'appeler des méthodes avec des paramètres... Une autre solution donc !
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 64
    Par défaut
    Merci pour les réponses...

    C'est vrai que c'est assez dommage de ne pas pouvoir passer de paramètres, je m'en étais vite rendu compte quand j'ai commencé à développer...

    Sinon la réponse de djo.mos marche, donc je vais utiliser cette technique.
    Je n'ai pas envi de trop rajouter de librairie.

    Bonne journée

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 64
    Par défaut
    En fait ce n'est pas vraiment résolu
    Quand je rajoute le "value" au selectBooleanCheckbox, je ne peux plus me servir du binding... Et donc quand je veux faire un changement, ca ne me prend rien en compte.
    Comment ca se fait?

    Encore un petit effort

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Veux tu reformuler s'il te plaît ?
    C'est quoi le problème au juste ?

Discussions similaires

  1. [LG]Tri par insertion dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 4
    Dernier message: 18/12/2003, 22h34
  2. [LG]suppression dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 9
    Dernier message: 16/12/2003, 21h20
  3. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09
  4. Réponses: 2
    Dernier message: 17/08/2003, 20h07
  5. Réponses: 4
    Dernier message: 24/04/2003, 22h28

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