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 :

cacher / afficher des div en JSF


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 48
    Points
    48
    Par défaut cacher / afficher des div en JSF
    Bonjour,
    peut ont utiliser jquery?
    je voudrais faire ca:
    http://top-news.fr/demos/ajax-jquery/test.html


    Comment faut il faire en JSF? Car là avec les <h:commandButton> à la place des <a>, je m'en sors pas...

  2. #2
    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 le faire en ajax si tu utilise Richfaces, sinon en javascript.
    En JSF tu peux utiliser l'attribut rendered de ton div(panelGroup par exemple) avec Richfaces utiliser un a4j:support ou reRender, et en pure JSF valueChangeListener et un submit du formulaire.

    Avec javasscript, tu peux changer le style et le display du div block ou hidden..voir et forum jaavscript.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 48
    Points
    48
    Par défaut
    Ok merci
    Mais j'arrive bien à cacher un div (en javascript) s'il n'y a pas de JSF dedans.
    Mais lorque je mettais des composants JSF dedans ca ne fonctionnait plus...
    Peut être qu'il faut éviter certains composants?

  4. #4
    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
    donne nous le code pour comprendre ce qui ne va pas.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    De mon côté ça marche avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function displayOrHideBlock(x){
        if( document.getElementById(x).style.display =='block'){
            document.getElementById(x).style.display = 'none';
        }
        else{
            document.getElementById(x).style.display = 'block';
        }
    }
    x correspond à l'id de ton div.
    Cette méthode est appelé par l'attribut onclick d'une balise <a>.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 48
    Points
    48
    Par défaut
    Sniper37:
    Mon code bidon:

    fonctions javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <script type="text/javascript">
            function cacherJSF(){
                    document.getElementById('contenuJSF').style.display = 'none';
            }
            function cacherJavascript(){
                    document.getElementById('contenuJavascript').style.display = 'none';
            }
    </script>
    Code qui cache rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id ="contenuJSF">
                <h:form id ="form1">
                    <h:panelGrid columns ="2">
                        <h:outputText value="Nom :"/>
                        <h:inputText/>
                    </h:panelGrid>
                    <h:commandButton value="Retour" onclick="cacherJSF()" />
                </h:form>
    </div>
    Code sans JSF qui cache:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            <div id="contenuJavascript">
                <form>
                    Contenu
                    <a onclick="cacherJavascript()">cacher</a>
                </form>
            </div>
    scorplayer:
    Mais <a> c'est pas du JSF?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    Oups, je viens de voir que tu voulais du JSF.
    Tu as essayé avec un outputLink à la place d'un commandLink?

  8. #8
    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
    En fait, ton souci c'est que dans le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:form id="myForm">
        <h:panelGroup id="myBlock" layout="block">
        ...
    si tu veux récupérer le panelGroup (le DIV en HTML) il te faut l'ID complet de ce dernier, qui n'est pas myBlock, mais myForm:myBlock !

    En effet, certains composants (qui implémentent l'interface NamingContainer) ont la particularité de faire préfixer les IDs des composants qu'ils contiennent par leur propre ID. Dans mon exemple, myBlock est donc préfixé par myForm: Le form est l'un de ces NamingContainer.

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par Lourpiop Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id ="contenuJSF">
                <h:form id ="form1">
                    <h:panelGrid columns ="2">
                        <h:outputText value="Nom :"/>
                        <h:inputText/>
                    </h:panelGrid>
                    <h:commandButton value="Retour" onclick="cacherJSF()" />
                </h:form>
    </div>
    C'est bien beau ce code, mais après avoir caché ton DIV, ca va soumettre le formulaire et afficher une nouvelle page -> ne sert à rien, il est là ton problème. Si tu veux annuler une soumission de forumlaire dans un onclik, il faut faire un "return false" pour interromptre le process.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 191
    Points : 118
    Points
    118
    Par défaut
    tchize_ a trouvé

    C'est pour ça qu'à l'époque j'avais opté pour la balise <a>. La prochaine fois j'utiliserais peut être une balise JSF maintenant que j'ai l'explication et l'astuce pour ne pas soumettre le formulaire.

    Merci tchize_

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 48
    Points
    48
    Par défaut
    ah oui ca marche mieux merci!!
    je me disais, c'est comme si ca cachait une fraction de seconde!!
    merci!

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 48
    Points
    48
    Par défaut re
    du coup ca ne passe plus par mon champ "action" !!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:commandLink value="#{p.firstName}" action="#{userController.doUpdate}"  onclick="update();return false;"  />

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ben oui c'est le but Si tu dois passer par l'action, autant cacher directement ton panneau avec un rendered= dans ta page jsf, ca évitera de s'emmerder

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 48
    Points
    48
    Par défaut
    C'est cool

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

Discussions similaires

  1. Cacher/afficher un div
    Par xboulney dans le forum jQuery
    Réponses: 7
    Dernier message: 29/01/2012, 23h55
  2. afficher des divs en "tableau"
    Par loukoum82 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/04/2011, 14h37
  3. Réponses: 5
    Dernier message: 31/03/2010, 13h20
  4. Afficher des Divs dans une boucle
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2009, 10h41
  5. Cacher/afficher des boutons
    Par philippef dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/09/2005, 16h09

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