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 :

[RichFaces]datatable, filterBy, selectBooleanCheckbox, erreur récupération de ligne


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut [RichFaces]datatable, filterBy, selectBooleanCheckbox, erreur récupération de ligne
    Salut les gens,

    Je me suis mis à utiliser RichFaces (3.1.2 GA) entre autre pour l'avantage des tag filterBy et sortBy des datatable.

    J'ai ajouté, dans une r:datatable, une colonne de h:selectBooleanCheckbox, bindée via un objet view sur un UISelectBoolean.

    Je désire effectuer un traitement Java après clic sur bouton, sur toutes les lignes dont le checkBox est sélectionné.

    Problème : si j'utilise le filterBy (saisie d'une lettre quelconque et affichage de quelques lignes seulement), et que je coche une ligne, le traitement Java ne se fait pas sur la ligne correspondante ! Le filter By ne s'applique que sur le visuel rendu à l'utilisateur, tandis que ma méthode getSelectedLines me rend un numéro de ligne dans toute la ArrayList !!

    ex :
    ArrayList : aa - ab - cc - cd
    Affichage : aa - ab - cc - cd
    checkbox : x - x
    -->lignes séléctionnée : (1) aa, (2) ab

    ArrayList --------------- : aa - ab - cc - cd
    Affichage avec filterBy "c" : cc - cd
    checkbox --------------- : x - x
    -->lignes séléctionnée : (1) aa, (2) ab

    Que puis-je faire à votre avis ? retravailler la méthode getSelectedLines (mais comment ?) ? Utiliser un autre moyen de "cochage" de ligne ? un autre composant ?

    getSelectedLines
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public List getSelectedLines() {
            int size = this.dataTable.getRowCount();
            List datas = (List) this.dataTable.getValue();
            List selectedObjects = new ArrayList();
            for (int i = 0; i < size; i++) {
                this.dataTable.setRowIndex(i);
                if (this.globalCheckboxSelection.isSelected()) {
                    selectedObjects.add(datas.get(i));
                }
            }
            return selectedObjects;
        }
    merci d'avance pour vos idées

  2. #2
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut
    Bon, pour info, vu que je souhaitais faire saisir à l'utilisateur les lignes qu'il avait modifié, je suis passé autrement : j'ai fair une copie pur et simple et je compare toutes les cellules. Donc voila, plus besoin de case à cocher.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2011, 16h09
  2. Richfaces datatable filterby date
    Par kikifiat dans le forum JSF
    Réponses: 6
    Dernier message: 26/10/2009, 00h52
  3. [Richfaces] datatable et css pour surligner une ligne
    Par omegabahamut dans le forum JSF
    Réponses: 2
    Dernier message: 07/09/2009, 11h50
  4. Réponses: 2
    Dernier message: 10/03/2009, 21h34
  5. Richface Datatable et sélection d'une ligne
    Par aigleborgne dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 18/12/2008, 11h59

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