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 :

Identifier un bouton


Sujet :

JSF Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut Identifier un bouton
    bonjour !

    voilà le soucis j'affiche un dataTable et sur chaque ligne un bouton poubelle pour pouvoir supprimer la ligne. Le nombre de ligne provient d'une arraylist, donc d'un managed bean.

    Sur le managed bean j'ai l'action listener du bouton. Question: comment identifier le bouton.

    Mon dataTable et contenu dans un autre dataTable, et pour une raison X je ne peut pas faire un binding de UIData, ce qui m'amène à utiliser des buttonCommand et actionsListeners.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    hello,

    ton probleme serait plutot d identifier l element courrant (celui de la ligne que tu veux supprimer) vu que chacun des boutons fait appel à la même action

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    oui c'est également cela !

    je suis super bloquer, je comprends pas pourquoi, à cause des EL

    J'ai une dataTable liée à une arrayList avec un var=item

    pour chaque item j'ai une autre dataTable avec un var=opt.

    Primo je peux pas faire un binding="#{item.MonUIData}" je comprends pas pourquoi alors que pour les value ca fonctionne.

    ensuite je peux pas non plus faire un f:param name="otpion" value="#{opt.ID}"

    Ca m'étonne vraiment pour les EL. Est ce un problème de ma configuration ??

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    pour ton binding je suppose que ce n'est pas possible que cela soit dynamique

    pour le f:param ca m étonne un peu plus tu as bien un getID et non getId ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    oui pour le getter c'est bon le pire c'est que sur ma colonne j'ai

    <t:commandButton blabla
    <f:param name value="#{opt.optionID}" />
    </t:commandButton>

    <t:outputText value="#{opt.optionID" />

    le output fonctioin correctement.

    je suis sous jboss 4.04 jsf 1.1 (en RI) jdk 5

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    tu récupére comment ton param aprés ? c'est definit dans ton bean (#param.nom du param} ? ou tu récupére la session depuis l'externalContext ?

    J'ai aussi 2 datatable imbriqué avec un f:param et je n'ai pas de souci.

    Sinon tu as aussi t:updateActionListener pour passer des paramétres.

    Comme tu as un actionListener du bouton tu peux recuperer l'id du bouton cliqué (mais la c'est pas super propre comme méthode ).

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    on mode debugger

    je vois le commandButton attaché à l'actionEvent que je récupère.
    Dans les fils du UIComponent (commandButton) on a bien l'objet param, avec son name qui est celui indiqué mais sa value==null;

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    je crois que ca deja été cité mais remplace l utilisation du button par un link avec le param (me demande pas pourquoi lol)

  9. #9
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    bonjour,

    as tu trouvé la solution?

    car j'ai une autre solution que j'ai l'essayé est ça marche.

    bon courage

  10. #10
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Encapsule ton ArrayList dans un DataModel. Tu peux ensuite lui demander la ligne sélectionnée (en l'occurence l'entrée de ton ArrayList sur laquelle l'action doit-être exécutée).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private DataModel model = new ListDataModel();
    {
        model.setWrappedData(tonArrayList);
    }
     
    public DataModel getList() {
        return model;
    }
    Et dans ton action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        TaClasse instance = (TaClasse) model.getRowData();
    Alex

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    En faite j'en suis arriver à un stade ou j'élabore quasiment toutes mes pages de façon programmatique, tel un vieille adepte de swing que je suis.

    De ce fait j'ai quasiment plus de soucis (sauf header dans les panelGrid).

    C'est plus long à coder mais il y a plus de potentiel pour l'évolution de la page, et j'apprécie le débuggage fait par éclipse.

    Pour mes boutons j'ai fin par leur associé des attributs pour les identifier.

    Merci mbouzouita

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par mbouzouita
    bonjour,

    as tu trouvé la solution?

    car j'ai une autre solution que j'ai l'essayé est ça marche.

    bon courage
    Bonjour mbouzouita

    Je ne sais pas si ta solution utilise un header pour le composant "hyperlien"

    Peux-tu m'enparler plus à ce sujet.

    Merci.

  13. #13
    Membre expérimenté Avatar de a.snaps
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 209
    Par défaut
    Citation Envoyé par Alec6
    En faite j'en suis arriver à un stade ou j'élabore quasiment toutes mes pages de façon programmatique, tel un vieille adepte de swing que je suis.
    Je ne vois pas ce que cela change à ma suggestion...
    Soit.
    Alex

  14. #14
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    salut a tous,

    j'ai eu presque la meme probleme que Alec6, et apres des recherches et plusieur essais, j'ai trouve la solution:
    de utiliser selectbooleancheckbox =>'ajouter une colonne' a ma table,associer cette colonne a une colonne de ma table qui existe deja"pour tester si la XX est supprimé ou non, car reelement je ne supprime pas XX pour des raisons X, et comme selectbooleancheckbox retourne true ou false je fais une class de convertion boolean=>number 0 ou1, et cette selectboolean j'ai l'associe a la variable de datatable pour pouvoir recuperer l'etat de select de chaque ligne et enfin j'ai fais un boutton qui supprime la ligne selectionne par selectbooleancheckbox. c'est presque comme le principe de boite email de yahoo.

    d'autre part j'ai utilise hyperlink associe une parametre pour pouvoir savoir sur la ligne selectionné et faire....

    tous ça marche tres bien, apres plusieur recherche ...

    si vous voulez le code je peux vous l'envoyé.

    je crois pour l'utilisation de backing bean ça alourdi un peu l'application et je sais pas si ça vrai ou non???

    merci a tous

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Par défaut
    Citation Envoyé par mbouzouita
    salut a tous,

    j'ai eu presque la meme probleme que Alec6, et apres des recherches et plusieur essais, j'ai trouve la solution:
    de utiliser selectbooleancheckbox =>'ajouter une colonne' a ma table,associer cette colonne a une colonne de ma table qui existe deja"pour tester si la XX est supprimé ou non, car reelement je ne supprime pas XX pour des raisons X, et comme selectbooleancheckbox retourne true ou false je fais une class de convertion boolean=>number 0 ou1, et cette selectboolean j'ai l'associe a la variable de datatable pour pouvoir recuperer l'etat de select de chaque ligne et enfin j'ai fais un boutton qui supprime la ligne selectionne par selectbooleancheckbox. c'est presque comme le principe de boite email de yahoo.

    d'autre part j'ai utilise hyperlink associe une parametre pour pouvoir savoir sur la ligne selectionné et faire....

    tous ça marche tres bien, apres plusieur recherche ...

    si vous voulez le code je peux vous l'envoyé.

    je crois pour l'utilisation de backing bean ça alourdi un peu l'application et je sais pas si ça vrai ou non???

    merci a tous
    oui moi j'aurais besoin du code pour le hyperlink. est-ce que tu as fait des chnagements au niveau du header de HTTP ?

  16. #16
    Membre confirmé
    Profil pro
    Analyste programmeur
    Inscrit en
    Novembre 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Analyste programmeur

    Informations forums :
    Inscription : Novembre 2006
    Messages : 197
    Par défaut
    voila l'example + code :
    <af:column sortable="false" headerText="Selecte"

    id="column1">
    <af:selectBooleanCheckbox

    id="selectBooleanCheckbox2" converter="convertion"
    value="#{datatab.statue}"/>
    </af:column>

    et dans le bean:
    public String supprimer() {

    Iterator iterator = datatable.iterator();
    RecTReclamation rec=null;

    while (iterator.hasNext()) {
    rec = (RecTReclamation) iterator.next();

    if(rec.getStatue()==1){
    rec.setApartientA(rec.getApartientA());
    rec.setAUnite(rec.getAUnite());
    rec.setCatProbleme(rec.getCatProbleme());
    rec.setConsequence(rec.getConsequence());
    ................................

Discussions similaires

  1. Récupérer l'identifiant de bouton cliqué
    Par abdoinfo dans le forum JSF
    Réponses: 3
    Dernier message: 10/08/2011, 15h06
  2. [Toutes versions] identifier le bouton dans la caption qui a été cliqué
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/09/2010, 15h36
  3. Identifier le bouton qui a été cliqué
    Par Anubis dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2009, 19h53
  4. Réponses: 13
    Dernier message: 26/09/2008, 23h51
  5. Identifier différents boutons
    Par Invité dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/09/2007, 12h29

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