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 :

Recuperer la ligne selectionnée dans un rich:dataTable


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 59
    Par défaut Recuperer la ligne selectionnée dans un rich:dataTable
    Bonjour tout le monde,

    j'essaie de récupérer la ligne sélectionner dans un dataTable, sans passer par les 3 méthodes mentionnée dans le FAQ JSF, pour faire simple sans passer par le commandLink, j'ai donc utilisée l'attribut selection dans un dataTable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <rich:dataTable value="#{AccountBean.accountList}" var="account"
        id="listTable" selection="#{AccountBean.selection}" onRowMouseOver="this.style.backgroundColor='#FFFFAA'"
        onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'">
        <a4j:support event="onclick"
            actionListener="#{AccountBean.selectionOperateur}"
            action="#{AccountBean.action}">
        </a4j:support>
        <rich:column id="Nature">#{account.natureCompte}</rich:column>
    </rich:dataTable>
    dans mon bean:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        private SimpleSelection selection = new SimpleSelection();
     
        public SimpleSelection getSelection() {
        return selection;
        }
     
        public void setSelection(SimpleSelection selection) {
        this.selection = selection;
        }
    je verifie dans l'objet selection mais y'as rien, qui correspond a la valeur selectionnée,

    est ce que j'ai omis quelque chose ?? ou ce n'est pas la bonne façon de faire??

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Par défaut
    Si ta liste est un ListDataModel, tu peux récupérer la ligne sélectionnée avec getRowIndex(). Je pense que c'est la solution la plus simple pour la datatable!

    cf. http://java.sun.com/javaee/javaserve...l#getRowIndex()

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu peux aussi jeter un coup d'œil dans la , qui propose trois solutions pour récupérer une ligne de la dataTable.

  4. #4
    Membre expérimenté
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Par défaut
    Pourquoi veux-tu faire autrement au fait?

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 59
    Par défaut
    avec une listDataModel ca marche nickel, Big up les gars vous m'avez beacoup aidez, merci beacoup, domo arigatou.
    je met l'exemple comme ca on ne posera plus la même question

    dans le bean
    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
     
        public DataModel getListAccount() {
    	List<AccountImpl> accounts = getAccount();
    	listAccount = new ListDataModel();
    	listAccount.setWrappedData(accounts);
    	return listAccount;
        }
     
        private List<AccountImpl> getAccount() {
    	List<AccountImpl> accountList = new ArrayList<AccountImpl>();
    	accountList.add(new AccountImpl("Compte",
    		"987456321", new Long(852), new Long(456), new Long(4744),
    		new Long(876), new Long(96)));
    	accountList.add(new AccountImpl("Compte sur carnet",
    		"9874564561", new Long(50000), new Long(0), new Long(0),
    		new Long(0), new Long(0)));
    	accountList.add(new AccountImpl("Cheque", "9874562221", new Long(
    		50000), new Long(0), new Long(0), new Long(0), new Long(0)));
    	return accountList;
        }
    associer l'attribut value au dataModel dans le dataTable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <rich:dataTable value="#{AccountBean.listAccount}" var="account"
        id="listTable" selection="#{AccountBean.selection}" onRowMouseOver="this.style.backgroundColor='#FFFFAA'"
        onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'">
        <a4j:support event="onclick"
            actionListener="#{AccountBean.selectionOperateur}"
            action="#{AccountBean.action}">
        </a4j:support>
        <rich:column id="Nature">#{account.natureCompte}</rich:column>
    </rich:dataTable>

    pour récuperer la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public void selectionneElement(ActionEvent evt) {
    	// récupèrer la ligne.
    	AccountImpl acc = (AccountImpl) listAccount.getRowData();
        }
    pour t'as question yciabaud
    avec un commandLink tu doit cliquer sur le lien "text", et esthétiquement parlant c'est pas beau a voir,

  6. #6
    Membre expérimenté
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Par défaut
    Je ne vois aucune différence entre ce que tu as fait et la FAQ, enfin l'essentiel est que tu t'en sois sortit

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Par défaut
    Salut, J'ai une question a vos poser. comment vous faites pour colorer la ligne selectionné, si vous arrivez a le fairej'aimerai bien que vous m'aider le faire. merci

  8. #8
    Membre expérimenté
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Par défaut
    Je l'ai fait avec jQuery personnellement, je ne sais pas si c'est le plus simple mais il est intégré a Richfaces alors j'en ai profité (en attendant CSS3)

    Le code javascript ressemble un peu à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jQuery('tr:has(input:checked)').addClass('css-selected')

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

Discussions similaires

  1. [WD19] Recuperer ligne selectionner dans champs SAI
    Par magicien33 dans le forum WinDev
    Réponses: 3
    Dernier message: 01/06/2015, 09h27
  2. Réponses: 6
    Dernier message: 22/08/2009, 12h33
  3. Réponses: 5
    Dernier message: 17/12/2008, 17h53
  4. Réponses: 5
    Dernier message: 14/02/2008, 00h07
  5. [ComboBox] Recuperer la ligne selectionnée
    Par webbulls dans le forum Composants
    Réponses: 4
    Dernier message: 11/07/2005, 10h49

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