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 :

PrimeFaces et Dialog


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut PrimeFaces et Dialog
    Bonjour,

    Je tente de faire disparaître un bouton en ajax, mais impossible de récupérer la référence à ce bouton, c'est une exemple Primefaces. Je comprends guère la façon dont on gère la partie Ajax et surtout Javascript, les Id sont dans leurs première partie dynamique.

    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
     
    <p:tabView>
            <p:tab title="Questionnaire" id="questionnaire">
     
                    <p:commandButton  id="showDialogButton" type="button" value="Ajouter un thème" onclick="dlg.show()" />  
     
                    <p:dialog header="Quel est la dénomination de votre thème" appendToBody="true" widgetVar="dlg" resizable="false">  
                        <h:form id="form">  
                            <h:panelGrid columns="2" style="margin-bottom:10px">  
                                <h:outputLabel for="theme" value="Votre Thème :" />  
                                <p:inputText id="theme" value="#{questionnaireControler.theme}" />  
                            </h:panelGrid>  
                            <p:commandButton id="submitButton" value="Submit" update=":#{p:component('display')}" oncomplete="$('#showDialogButton').css('display', 'none'); dlg.hide();"/>  
                        </h:form>  
                    </p:dialog>  
                    <p:outputPanel id="display" style="display:block;margin-top:10px;font-weight: bold;" >  
                        <h:outputText id="name" value="#{questionnaireControler.theme}" rendered="#{not empty questionnaireControler.theme}" />
                        <h:graphicImage library="images" name="icones/annuler.gif"/>
                    </p:outputPanel>  
            </p:tab>
     
    ...
    le $('#showDialogButton').css('display', 'none'); ne fonctionne pas car JSF génère avant j_idt19:showDialogButton. j'avais contourné ce pb avec update=":#{p:component('display')}" pour la partie mise à jour du message en dehors de la balise form, mais la je sèche ...

    Pas simple le js in JSF


    Olivier

  2. #2
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Essaie avec ça document.getElementById('questionnaire:emailAddress'); Si ça ne marche pas il faut le binder et dans ton javascript tu rajoute document.getElementById("#{backBean.myInputText.clientId}")

  3. #3
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Bonjour,

    évite de faire du JavaScript mais utilise plutôt ce que t'offre JSF à ce sujet.

    Il faut que tu associes (binding) ton bouton avec sa réprésentation Objet dans un ManagedBean . La classe est CommandButton

    par exemple

    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
     
    @ManagedBean
    public class MonManagedBean
    {
         private CommandButton monBouton;
     
         // getters / setters
     
     
        public void activerBouton()
        {
            monBouton.setDisabled(true);
        }
     
        public void desactiverBouton()
        {
            monBouton.setDisabled(true);
        }
    }
    ensuite dans ta page JSF, il te faut bien sûr un composant qui déclenche les méthodes ci-dessus en fonction du besoin (actionListener), mais il faut surtout que ton bouton (que tu veux voir disparaitre) soit associé avec un binding :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:commandButton binding="#{monManagedBean.monBouton" ... ... />
    En espérant t'avoir mis sur la voie ...

  4. #4
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut Oui mais non
    Bonjour,

    Je vois ce que tu veux dire, mais dans le cadre d'un site soumis à une charge importante le fait de ne recharger l'essentiel, me semble plus pragmatique. C'est je crois par expérience le bon choix.


    Olivier

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    pour faire disparaitre et un apparaitre un button tu peux utiliser tout simplement la propriété rendered

  6. #6
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    mais la méthode que j'ai présenté ne charge que l'essentiel (une partie du dom) grâce à AJAX que fais JSF pour toi ...

    sauf vraiment si tu veux que ce soit fait côté client uniquement ...

Discussions similaires

  1. [PrimeFaces] Problème Dialog
    Par haithem.bsh dans le forum JSF
    Réponses: 2
    Dernier message: 30/05/2014, 14h08
  2. [PrimeFaces] Raffraichir l'affichage d'un Dialog
    Par antokill54 dans le forum JSF
    Réponses: 2
    Dernier message: 08/04/2013, 13h53
  3. PrimeFaces Tree + sélection + dialog
    Par nadou06 dans le forum JSF
    Réponses: 1
    Dernier message: 18/01/2013, 14h21
  4. JSF Primefaces Dialog
    Par zouhayr dans le forum JSF
    Réponses: 3
    Dernier message: 19/06/2012, 15h23
  5. Réponses: 1
    Dernier message: 08/06/2012, 12h02

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