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 :

récupérer N° de la ligne sélectionnée dans un dataTable


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Par défaut récupérer N° de la ligne sélectionnée dans un dataTable
    salut à tous,

    mon problème est le suivant :

    j'ai un extendedDataTable dans mon formulaire.

    les valeurs sont bien affichées, mais je veut en plus obtenir l'index de la ligne sélectionné dans mon programme(càd la classe *Bean) chaque fois que je selectione une ligne (event="onselectionchange").

    je suis coincé depuis 3 jours

    Svp aidez moi !!!

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    un peu de code pourrait nous aider à comprendre le problème

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Par défaut
    salut,

    la partie du code relative à mon extendedDataTable est la suivante:

    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
    <rich:extendedDataTable
                    value="#{ArticleBean.article_list}" var="art" id="table"
                    width="580px" height="400px"
                    binding="#{ArticleBean.x}">
                         <rich:column sortable="true" sortBy="#{art.numArt}"
                        filterBy="#{art.numArt}" filterEvent="onkeyup" width="170px"
                        label="Numéro Article">
                        <f:facet name="header">
                            <h:outputText value="Numéro Article" />
                        </f:facet>
                        <h:outputText value="#{art.numArt}" />
                    </rich:column> 
     
                          <a4j:support reRender="divers"
                                       action="#{ArticleBean.onSelected}"
                        event="onselectionchange" />
                   </rich:extendedDataTable>
    Bon j'ai essayé de récupérer l'index de la ligne sélectionné à travers ce bout de code (existant dans mon managedBean)

    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
    21
    22
    23
     
    public class ArticleBean extends ManagedBean
    {
     
        private List article_list = new ArrayList();
        private UIRepeat article_repeater;
        private int index;
        private HtmlExtendedDataTable x;
     
        //Autre code ...     
     
        public HtmlExtendedDataTable getX() {
            return x;
        }
     
        public void setX(HtmlExtendedDataTable x) {
            this.x = x;
        }
     public void onSelected()
        {
            index = x.getRowIndex();
            this.art = (Article) article_list.get(index);
        }
    l'erreur générée est :
    javax.faces.FacesException: #{ArticleBean.onSelected}: java.lang.ArrayIndexOutOfBoundsException: -1

    Le plus étonnant c'est que lorsque je remplace x.getRowIndex() par x.getRowCount()-1 dans la fonction "onSelected()" il me retourne l'objet "Article" qui se situe dans la derniere case de la liste.

    Vraiment je ne trouve aucune explication!!!?

    Veillez m'aider SVP.

  4. #4
    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
    Par défaut
    Ca ca va te sauver la vie. Mets cet attribut dans ton datatable : , ensuite mets ce paramètre dans le button des lignes du tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:param name="currentLigneKey" value="#{ligneKey}"/>
    Et coté Java tu le récupères comme un paramètre classique.il te renverra l'index de la ligne selectionnée.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    ensuite mets ce paramètre dans le button des lignes du tableau
    Il a pas de bouton dans ses lignes

    L'erreur viens du fait que rowIndexVar vaut -1, ce qui est normal puisqu'on est pas dans le cadre de la gestion d'un ligne, mais dans le cadre de la datatable complète. Tu peux, cependant, connaitre la / les lignes sélectionnée avec extendedDatatable.getSelection() qui te renverra un org.richfaces.model.selection.Selection, qui lui même possède une méthode public java.util.Iterator getKeys();

  6. #6
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Par défaut
    Oui c'est ca pas de bouton dans les lignes

  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
    Par défaut
    Non recuperes plutot avec ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    context.getExternalContext().getRequestParameterMap().get("currentLigneKey")(

Discussions similaires

  1. Réponses: 10
    Dernier message: 06/05/2010, 20h51
  2. Récupérer la ligne sélectionnée dans un ListView
    Par altropus dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 15/02/2010, 11h57
  3. Réponses: 1
    Dernier message: 29/10/2008, 13h56
  4. Récupérer le numéro de la ligne sélectionnée dans une variable?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/10/2007, 11h48
  5. Récupérer la ligne sélectionnée dans un ListBox
    Par jmjmjm dans le forum Composants VCL
    Réponses: 3
    Dernier message: 11/11/2005, 22h13

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