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

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    février 2015
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : février 2015
    Messages : 326
    Points : 138
    Points
    138

    Par défaut Primefaces : Problème de menu contextuel

    Bonjour,
    Dans une appli web java, j'utilise JSF et le framework Primefaces.
    J'ai défini un menu contextuel dans chaque page du projet.
    Mon problème est que le menu contextuel appelle une méthode, mais plusieurs fois.
    Par exemple, si j'ouvre et ferme 5 pages, la méthode au prochain menu contextuel sera exécutée 5 fois !
    Tous les bean utilisés sont en scope view.
    Merci pour votre aide.

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <p:contextMenu for="idPage" beforeShow="noteMenuContextuelPosition()">   <-- au clic droit, appel du JS noteMenuContextuelPosition
    ...
    ...
    </p:contextMenu>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            <script type="text/javascript">
     
                function noteMenuContextuelPosition()
                {
                 ... 
                 ...               
                    rcNoteMenuContextuelPosition();   <--- appel de la méthode du bean via remoteCommand
                }
            </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:remoteCommand name="rcNoteMenuContextuelPosition" actionListener="#{noteManagerBean.menuContextuelPosition()}"/>   <--- méthode appelée x fois !

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    6 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 6 826
    Points : 8 692
    Points
    8 692
    Billets dans le blog
    1

    Par défaut

    Pas sûr d'avoir compris ton problème mais de ce que je vois, il me semble que ton problème est lié à l'appel systématique de ta "remoteCommand" sur un click-droit.
    Que ce soit fait une fois par page me parait normal donc si tu as 5 pages, il faudrait bien l'appeler 5 fois...
    Comme tu passes déjà par une fonction javascript pour appeler la remoteCommand, il suffit de passer par une variable "window" pour savoir si tu as déjà fait le boulot ou non, un truc comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script>
    var processed = false;
     
    function noteMenuContextuelPosition()
    {
       if (processed) return;
       processed = true;
       ...
    }
    </script>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    février 2015
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : février 2015
    Messages : 326
    Points : 138
    Points
    138

    Par défaut

    Je me suis très mal expliqué.

    1 - J'ouvre et ferme une même page 5 fois

    2 - J'ouvre la même page une 6ème fois

    3 - Clic droit pour déclencher le menu contextuel : --> contextMenu est déclenché 6 fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <p:contextMenu for="idPage" beforeShow="noteMenuContextuelPosition()"> 
    ...
    ...
    </p:contextMenu>

Discussions similaires

  1. PrimeFaces : Datatable et menu contextuel
    Par denisduval75 dans le forum JSF
    Réponses: 0
    Dernier message: 20/12/2018, 11h19
  2. Primefaces : tableau et menu contextuel
    Par denisduval75 dans le forum JSF
    Réponses: 2
    Dernier message: 02/11/2018, 11h12
  3. Primefaces : désactiver le menu contextuel
    Par denisduval75 dans le forum JSF
    Réponses: 0
    Dernier message: 26/10/2018, 11h17
  4. [Débutant] Problème ouverture menu contextuel via un bouton
    Par Lookoum dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 27/11/2013, 17h21

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