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 :

[debutant] Récupération des données de la ligne sélectionnée dans extendedDataTable


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 15
    Points
    15
    Par défaut [debutant] Récupération des données de la ligne sélectionnée dans extendedDataTable
    Bonsoir,

    Comme le titre l'indique je n'arrive pas à récupérer les données de la ligne sélectionné dans l'extendedDataTable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:extendedDataTable value="#{chargerCtrl.clt}" var="ct" id="table"
    			width="480px" height="400px" selection="#{chargerCtrl.slect}"
    			rowKeyVar="#{ct.cmptAtw}">
    Même si j'ai cmptAtw dans rowKeyVar, la méthode getKeys() ne me retourne que le numéro de la ligne.
    Comment puis-je faire pour que lors de la sélection cmptAtw soit retourner?

    Merci .

  2. #2
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut
    je ne connais pas la méthode que tu as utilisé , mais je te conseille d'utiliser un datamodel et l'associer à ton managedbean , puis après tu récupéres la ligne selectionné grace au fonctikn associé au datamodel.

    tu devras aussi utiliser un actionlistner de type onselect.

    je n'ai pas le code entre mes mains maintenant , mais si je le trouve je te le posterai , en attendant essai de voir sur le net si tu ne trouves pas quelque chose sur ça.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Merci pour ta réponse mais je ne vois pas comment faire pour utiliser un datamodel et l'associer à mon managedbean.
    A ce que je sache dans le paramètre "selection" d'un extendedDataTable, il faut un objet de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.richfaces.model.selection.Selection

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 15
    Points
    15
    Par défaut
    J'ai essayé d'utiliser DataModel mais j'ai une erreur lors ce que j'essaye de récupérer les données de la ligne avec "getRowData()".

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    17-oct.-2009 16:25:55 javax.faces.webapp._ErrorPageWriter handleThrowable
    GRAVE: An exception occurred
    javax.faces.FacesException: Error calling action method of component with id j_id_jsp_772001489_1:table:j_id_jsp_772001489_10
    	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
    	at javax.faces.component.UICommand.broadcast(UICommand.java:141)
    	at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
    	at org.ajax4jsf.component.UIDataAdaptor.broadcast(UIDataAdaptor.java:1364)
    	at org.richfaces.component.UIExtendedDataTable.broadcast(UIExtendedDataTable.java:92)
    	at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
    	at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
    	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
    	at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
    	at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
    	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
    	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:151)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
    	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: javax.faces.el.EvaluationException: org.apache.jasper.el.JspELException: /listClients.jsp(29,4) '#{chargerCtrl.selectioner}' java.lang.IllegalArgumentException: row is unavailable
    	at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:82)
    	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
    	... 30 more
    Caused by: org.apache.jasper.el.JspELException: /listClients.jsp(29,4) '#{chargerCtrl.selectioner}' java.lang.IllegalArgumentException: row is unavailable
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:77)
    	at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78)
    	... 31 more
    Caused by: java.lang.IllegalArgumentException: row is unavailable
    	at javax.faces.model.ListDataModel.getRowData(ListDataModel.java:66)
    	at com.controler.ChargerCtrl.selectioner(ChargerCtrl.java:91)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
    	... 32 more

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Je relance le sujet, par ce que cela fait un bon moment que je ne trouve pas de solution .
    Merci pour votre aide d'avance.

  6. #6
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Pourquoi tu utilise getRowData, tu dois utiliser l'attribut selection.

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 15
    Points
    15
    Par défaut
    Oui c'est ce que j'ai essayé au début
    Bonsoir,

    Comme le titre l'indique je n'arrive pas à récupérer les données de la ligne sélectionné dans l'extendedDataTable.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <rich:extendedDataTable value="#{chargerCtrl.clt}" var="ct" id="table"
    			width="480px" height="400px" selection="#{chargerCtrl.slect}"
    			rowKeyVar="#{ct.cmptAtw}">
    Même si j'ai cmptAtw dans rowKeyVar, la méthode getKeys() ne me retourne que le numéro de la ligne.
    Comment puis-je faire pour que lors de la sélection cmptAtw soit retourner?

    Merci .
    Puis haskouse m'a proposé d'utiliser datamodel au lieu de selection.

  8. #8
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Tu peux jeter un coup d'œil sur l'exemple de la démo Richfaces.

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 15
    Points
    15
    Par défaut
    J'ai bien sur déjà vu l'exemple. Mais puis que les classes Java ne sont pas disponibles, je n'arrive pas à comprendre comment récupéré la lignes sélectionnée. getKeys() ne me retourne que le numéro de la ligne et donc ce n'est pas suffisant pour pouvoir déterminé la ligne sélectionnée.
    Ceci me bloque complètement depuis un bon moment.

  10. #10
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    voilà le code source

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 38
    Points : 15
    Points
    15
    Par défaut
    Merci encore Sniper37, je ne savais pas que le code source est fourni, Maintenant c'est plus évident .

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Points : 34
    Points
    34
    Par défaut
    Je crois que je tombe amoureux de toi Snipper37 , encore une fois tu m'es d'un grand secours.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/08/2012, 15h52
  2. Réponses: 8
    Dernier message: 05/11/2010, 12h00
  3. Réponses: 35
    Dernier message: 10/12/2009, 21h07
  4. Réponses: 4
    Dernier message: 28/02/2007, 17h24

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