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 :

dataTable et methode sur les items


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 89
    Points : 51
    Points
    51
    Par défaut dataTable et methode sur les items
    Mon probleme est le suivant :
    j ai un objet qui contient une collection dont j affiche les items a l aide d un dataTable. Chacun de ces items contient une collection dont j affiche egalement les items a l aide d un dataTable. Mais voila j aimerai executer des methodes de sauvegarde, suppression, et edition sur chacun de ces items. Comment faire ?

    J ai lu qu il était possible d appeler directement des methodes sur ces items a cette adresse :
    http://turbomanage.wordpress.com/200...n-a-datatable/

    Mais j obtient : "#{renderer.saveRenderer}: javax.faces.el.MethodNotFoundException: saveRenderer"

    Voici le code de la jsp en question :

    <h:dataTable id="layers"
    styleClass="list-background" value="#{layerList.layers}" var="layer">
    <h:column>
    <h:graphicImage url="./images/galigeo/new_ana.gif"
    onclick="openJsp('rendererassistant.jsf?layer=#{layer.name}')"
    alt="#{msg.new_renderer}" />
    <h:outputText value="#{layer.aliasName}" style="padding-left:5px;" />
    <h:dataTable id="layers" styleClass="list-background"
    value="#{layer.renderers}" var="renderer" style="left:20px">
    <h:column>
    <h:commandLink action="#{renderer.saveRenderer}">
    <h:graphicImage url="./images/galigeo/save_2.gif"
    alt="#{msg.save}" />
    </h:commandLink>
    </h:column>
    <h:column>
    <h:graphicImage url="./images/galigeo/sup.gif" onclick=""
    alt="#{msg.delete}" />
    </h:column>
    <h:column>
    <h:graphicImage url="./images/galigeo/iconCategManage.gif"
    onclick="" alt="#{msg.edit}" />
    </h:column>
    <h:column>
    <h:outputText value="#{renderer.label}" />
    </h:column>
    </h:dataTable>
    </h:column>
    </h:dataTable>


    J ai aussi essaye cette méthode qui consiste à mettre un binding sur la dataTable :
    http://balusc.xs4all.nl/srv/dev-jep-dat.html

    Mais j obtient : "Error setting property 'myDataTable' in bean of type null"

    Voici le code de la jsp en question :

    <h:dataTable id="layers"
    styleClass="list-background" value="#{layerList.layers}" var="layer">
    <h:column>
    <h:graphicImage url="./images/galigeo/new_ana.gif"
    onclick="openJsp('rendererassistant.jsf?layer=#{layer.name}')"
    alt="#{msg.new_renderer}" />
    <h:outputText value="#{layer.aliasName}" style="padding-left:5px;" />
    <h:dataTable id="layers" styleClass="list-background"
    value="#{layer.renderers}" var="renderer" binding="#{layer.myDataTable}" style="left:20px">
    <h:column>
    <h:commandLink action="#{layer.saveRenderer}">
    <h:graphicImage url="./images/galigeo/save_2.gif"
    alt="#{msg.save}" />
    </h:commandLink>
    </h:column>
    <h:column>
    <h:graphicImage url="./images/galigeo/sup.gif" onclick=""
    alt="#{msg.delete}" />
    </h:column>
    <h:column>
    <h:graphicImage url="./images/galigeo/iconCategManage.gif"
    onclick="" alt="#{msg.edit}" />
    </h:column>
    <h:column>
    <h:outputText value="#{renderer.label}" />
    </h:column>
    </h:dataTable>


    Je peux me passer de la premiere methode mais j ai absolument besoin de la deuxieme.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    tu dois utilise un binding sur ta datatable puis la fonction getRowData(). Il doit y a avoir une réponse compléte quelque part sur le forum

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 89
    Points : 51
    Points
    51
    Par défaut
    C'est ce que j'ai fait dans la deuxième méthode mais ça ne fonctionne pas, j'obtiens l'erreur que je cite. Le problème dans mon cas vient du fait que j'ai un dataTable imbriqué dans un autre du au fait que j'ai une collection d'objets qui contient elle même une collection d'objets.

    Je m explique :
    J ai un objet LayerList qui contient une collection de layer.
    Je dois afficher les informations sur ces layers donc j utilise un dataTable.
    Chacun de ces layer contient une collection de renderer dont je dois aussi afficher les informations donc j utilise un dataTable.

    On arrive donc a un dataTable pour les layer dans lequel on a un dataTable par layer pour les renderers.

Discussions similaires

  1. Droits d'accès sur les Items d'une Liste
    Par mimosa803 dans le forum SharePoint
    Réponses: 30
    Dernier message: 11/05/2009, 20h28
  2. [ListBox] Comment réaliser un Drag&Drop sur les items ?
    Par Anto03 dans le forum Windows Presentation Foundation
    Réponses: 14
    Dernier message: 11/10/2008, 16h53
  3. définir un menu contextuel sur les items d'un treeview
    Par maa dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 05/05/2008, 19h51
  4. [Infobulle]sur les item d'une liste déroulante
    Par mamiberkof dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/05/2007, 11h31
  5. Réponses: 8
    Dernier message: 09/05/2007, 00h35

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