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 :

[JSF]Cocher toutes les checkbox d'une colonne


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut [JSF]Cocher toutes les checkbox d'une colonne
    Salut,

    Voila je voudrais faire un truc assez simple c'est pouvoir cocher tous les checkbox de mon tableau

    voici le code jsf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:dataTable id="table" binding="#{Userctrl.view.dataTable}" value="#{Userctrl.model.datas.listUser}" var="name" >
       <h:column>
            <h:SelectBooleanCheckbox id="cb" binding="#{Userctrl.view.checkbox}"/>
       <h:column>
    Et mon code java pour cocher toutes les checkbox lorsqu'on clique sur "coher tout" qui appelle la fonction cocher()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void cocher (){
     
    int size=dataTable.getRowCount();
     
    for (int i=0;i<size;i++){
     
         this.dataTable.setRowIndex(i);
         this.checkbox.setSelected(true);
    	}
    Voila donc rien de tres compliqué. Le probléme c'est qu'au final je n'ai qu'une case coché. Dans le cas au dessus ce sera la derniére checkbox de mon tableau car la derniére valeur de i correspond à la derniére case de mon tableau et j'ai this.dataTable.setRowIndex(i);

    si j avais eu this.dataTable.setRowIndex(i); il aurait coché l'avant derniére case

    et si j avais eu this.dataTable.setRowIndex(size-i-1); il aurait coché la 1ere case de mon tableau car la derniere valeur de la boucle aurait été 0.

    tout ça pour dire qu'il prend en compte que le dernier this.dataTable.setRowIndex(i-1); alors que je voudrais mettre à jour toutes mes cases !!!!!!

    Quelqu'un à une idée de comment faire ça....

  2. #2
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 89
    Points : 111
    Points
    111
    Par défaut
    c'est pas la peine de faire un bind sur le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:SelectBooleanCheckbox id="cb" binding="Userctrl.view.checkbox}"/>
    Il faut mieux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:SelectBooleanCheckbox id="cb" value="Userctrl.model.flag}" onchange="submit()" />
    Et reparcourir ton model pour faire un set ou reset des flags

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    Donc la value de <h:SelectBooleanCheckbox> permet de cocher ou decocher la checkbox. Ce que je comprends pas c'est ce de quel type sera flag ? ce sera un boolean ? si il est à true alors ce sera coché et si c'est à false ce sera décoché ?

  4. #4
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 89
    Points : 111
    Points
    111
    Par défaut
    oui, c'est ca
    Ca vient du bouquin "Core Java Server Faces" de Horstmann

  5. #5
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 89
    Points : 111
    Points
    111
    Par défaut
    au fait, model.flag doit correspondre a des methodes isFlag() et setFlag(boolean)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    Merciiiiiiiii cisco !!!!

    ça marche. en faites ta solution me semble plus logique que ce que je voulais faire. Bien qu'il doit quand meme y avoir un moyen de passer par le binding du composant pour changer sa valeur cohé/decoché. sinon y aura pas de methode isSelected(boolean) dans UISelectBoolean.

    En tout cas je te remercie encore, tu m'enlève une belle épine du pied !!!!

  7. #7
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,
    Ce post rejoint le pb que je rencontre en ce moment.
    J'ai aussi besoin de cocher toutes les cases d'une colonne d'une datatable, mais j'y arrive pas, j'ai un peu compris les solutions proposées sur ce post, sauf cette ligne qui me bloque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:SelectBooleanCheckbox id="cb" value="Userctrl.model.flag}" onchange="submit()" />
    Quand je coche la case globale, je vois pas l'attribut qui est censée lancer l'action (de cochage/decochage de toutes les cases).
    je ne comprends pas ce que fait .
    Merci d'avance

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

Discussions similaires

  1. Cocher toutes les checkBox dans une dataGridView
    Par jeandadaf dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/10/2009, 17h27
  2. montrer que toutes les cases d'une colonne <0
    Par isidore dans le forum C
    Réponses: 2
    Dernier message: 19/11/2006, 19h52
  3. Toutes les valeurs d'une colonne - Tableau à 2D
    Par Bridou dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2006, 16h05
  4. Concaténer toutes les lignes d'une colonne
    Par metalcoyote dans le forum Oracle
    Réponses: 6
    Dernier message: 10/05/2006, 15h51
  5. Effacer toutes les données d'une colonne
    Par denisfavre dans le forum Access
    Réponses: 5
    Dernier message: 12/10/2005, 15h20

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