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 l'indice de la ligne d'un composant DataTable


Sujet :

JSF Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 224
    Points : 116
    Points
    116
    Par défaut Récupérer l'indice de la ligne d'un composant DataTable
    Bonjour,
    J'utilise un composant dataTable du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <t:dataTable value="listeElement">
    Chaque ligne de ma "dataTable" est un lien sur lequel il est possible de cliquer pour sélectionner un élément.

    Pour connaître l'objet cliqué, j'ai utilisé un composant "param" à l'intérieur du composant "dataTable". Je souhaite que la valeur de mon "param" corresponde au numéro de la ligne sélectionné par l'utilisateur .

    Question : Est-il possible pour un composant "dataTable" de connaître la position de l'élément sélectionné dans la liste "listeElement"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <t:dataTable value="listeElement">

  2. #2
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Je vais parler de la <h:datatable/>, mais je pense que ce sera la même chose pour la datatable de Tomahawk :

    Le composant Datatable dispose de la méthode getRowData. Cette méthode va retourner l'objet contenu sur la ligne où le clic a été effectué.

    Par exemple, si j'ai une datatable qui itère sur une liste contenant des objets de classe Bidule. Si je mets un lien cliquable sur chaque ligne dans mon datatable, alors si je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bidule selectedElement = (Bidule) myDataTable.getRowData();
    Alors selectedElement correspondra à l'élément affiché dans la table sur la ligne où j'ai cliqué le lien.

    L'objet myDataTable est le composant lié à ma datatable dans la page JSF.

    C'est magique quoi

  3. #3
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 224
    Points : 116
    Points
    116
    Par défaut
    Merci romaintaz, je ne connaisais pas cette petite astuce.
    Dans mon cas je souhaite obtenir le contraire, c'est le numéro que je souhaite obtenir et non l'objet. J'ai trouvé un truc intéressant sur le composant dataTable de Tomahawk à savoir la propriété rowIndexVar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <t:dataTable value="#{list}" var="bidule" rowIndexVar="idRow" >
      <t:column>
        <t:commandLink action="#{action}">
         <f:param name="idRow" value="#{idRow}" />
         <h:outputText value="#{bidule.code}" />
       </t:commandLink>
      </t:column>
    </t:dataTable>
    Et dans mon action "action" je récupére l'indice avec un code du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Integer indice = (Integer)e.getComponent().getAttributes().get("idRow");

  4. #4
    Provisoirement toléré
    Inscrit en
    Octobre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 53
    Points : 66
    Points
    66
    Par défaut
    essayer avec sa

    Etudiant etudiant=(Etudiant) getCurrentRowObject();
    Integer id=etudiant.getnEtudiant();

  5. #5
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Si tu désires obtenir l'index de l'élément séléctionné, il te suffit de faire avec la méthode getRowIndex de la HtmlDatatable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int rowIndex = myDataTable.getRowIndex();

    C'est plus simple que de gérer toi même les indexes !

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2013, 12h44
  2. [XL-2007] Récupérer l'indice de ligne d'une forme
    Par Gregs dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/04/2009, 22h11
  3. Récupérer l'indice de la ligne d'un TSTRINGGRID
    Par Nzs26 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 16/03/2008, 19h28
  4. récupérer l'indice de la ligne séléctionner d'une MSFlexGrid
    Par awatif dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/09/2006, 13h50
  5. [.NET]récupérer indice d'une ligne
    Par fab3131 dans le forum MFC
    Réponses: 1
    Dernier message: 06/06/2006, 18h19

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