8
votes

La boîte de dialogue de confirmation principale disparaît presque instantanément

Je développe une application dans JSF 2.0. J'utilise également la bibliothèque de composants Premefaces. J'ai un problème avec le P: ConfirmDialog de PrimeFaces. Dès que je veux montrer un p: ConfirmDialog, il disparaît à nouveau presque instantanément. La chose la plus étrange est que ce problème ne se produit que sur l'application déployée sur le serveur de Verlassfish au travail. Lorsque je télécharge le même fichier .war sur le serveur Glassfish sur mon ordinateur à la maison ou lorsque j'exécute l'application dans NetBeans, ce problème ne se produit pas. Je ne peux vraiment pas savoir quelle est la cause de ce problème. De plus, je n'ai pas pu trouver d'informations à ce sujet sur Google. Toute aide serait grandement appréciée! Ceci est mon code: xxx


5 commentaires

Avez-vous CTRL + F5 la page qui est ouverte à partir du serveur de travail ou au moins effacer le cache du navigateur sur l'ensemble du domaine afin de vous assurer que vous avez la dernière version des trucs CSS / JS Inclus? Peut-être que vous ayez mis à niveau les premiersFaces dans l'attente et vous avez toujours eu l'ancien JS du domaine dans votre cache de navigateur.


C'est vrai que j'ai mis à jour les Premefaces Lib à une autre version lors du développement de l'application. Que me recommanderiez-vous de faire? Y a-t-il une chose que je devrais faire du côté serveur?


Comme dit, Clear Browser Cache.


Je vais essayer la première chose demain quand j'arrive au travail. Merci jusqu'à présent!


Malheureusement, cela n'a pas fonctionné. Je pense toujours que vous avez raison, il doit faire quelque chose avec la mise à jour de l'autre version de Premefaces.I a également un problème avec un autre composant P: DataTable: les barres de défilement ne fonctionnent pas sur l'application au travail.


3 Réponses :


16
votes

En cliquant sur le bouton entraînera une soumission. La boîte de dialogue apparaît et la page est rechargée immédiatement.

Modifiez ceci: p> xxx pré>

à ceci: p>

bezoekConfirmation.show(); return false;


0 commentaires

1
votes
<h:commandButton value="Verwijderen" onclick="bezoekConfirmation.show()" styleClass="verwijderKnopBig" rendered="#{pageRenderController.canWriteBezoekenMobiele}" />
<p:confirmDialog message="Bent u zeker dat u dit bezoek wilt verwijderen?" closable="false"
     header="Bezoek verwijderen" severity="alert" widgetVar="bezoekConfirmation" appendToBody="true">
<p:commandButton value="Ja" oncomplete="bezoekConfirmation.hide()" action="#{bezoekenMobieleController.deleteBezoek}" ajax="false" />
     <p:commandButton value="Nee" onclick="bezoekConfirmation.hide()" type="button" />
</p:confirmDialog>
appendToBody="true" will overcome your problem

0 commentaires

4
votes

La solution avec retour false; code> ne fonctionnera que si vous n'avez pas l'intention d'appeler une méthode ou de définir une variable.

Dans ce cas, utilisez simplement la boîte de dialogue OnComplete = ". Afficher (); " code> au lieu de onclick =" dialog.show (); " code> Cela passera à travers l'appel de méthode. P>


Exemple: p>

Étant donné que le code suivant est dans une sorte de tableau de données, vous pouvez avoir P>

<p:commandButton value="edit" update=":dialog" oncomplete="dialog.show();" action="bean.setField(_item)">
</p:commandButton>


1 commentaires

2017, changeant onclick à OnComplete est toujours une réponse valide, ThX!