Primefaces comment mettre à jour le contenu dans une boîte de dialogue et gardez la boîte de dialogue centré?
J'ai une boîte de dialogue qui contient le contenu de chargement de la page et je suis dynamiquement définir le contenu d'une boîte de dialogue en fonction du lien qu'un utilisateur clique sur.
<p:dialog widgetVar="dlg" modal="true" id="dialog">
<p:panel id="fullArticle">
<h:outputText value="#{content.newsArticle}" escape="false" />
</p:panel>
</p:dialog>
...
...
<p:commandLink value="Read more" actionListener="#{content.getFullArticle}" onclick='dlg.show();' update=":fullArticle">
<f:attribute name="contentId" value="#{news.contentId}" />
</p:commandLink>
Le problème que je rencontre est que lorsque vous cliquez sur "Lire la suite" lien, il affiche la boîte de dialogue, mais le dialogue n'est pas centré sur la page. Si je change le udpate attribut sur la commandLink à update=":dialog"
, la boîte de dialogue clignote comme si c'est l'ouverture et la fermeture de tout de suite.
Comment puis-je mettre à jour la boîte de dialogue et à ce qu'il soit centré avec du contenu dynamique?
Vous devez vous connecter pour publier un commentaire.
La
onclick
est exécutée avant de la requête ajax. Vous devez ouvrir la boîte de dialogue dansoncomplete
à la place. Ce sera exécutée après de la requête ajax et de mise à jour. Le<p:dialog>
est à savoir par défaut cachés, à moins que sonvisible
attribut évaluetrue
.Sans rapport avec à la de béton problème, êtes-vous conscient que vous pouvez passer fullworthy objets comme arguments de méthode depuis EL 2.2? Cela rend le
<f:attribute>
etactionListener
"hack" superflu:/WEB-INF/lib
? De toute façon, pas de problème, vous êtes les bienvenus 🙂:
dansupdate=":dialog"
vs juste direupdate="dialog"
sans:
?:
notation, si vous pouviez expliquer, ce serait super (je serais heureux de saisir d'une question distincte)J'ai eu le même problème.
La mise à jour de la boîte de dialogue de disparaître et de réapparaître (et d'oublier sa position).
Pour le résoudre, j'ai créé un wrapper de la balise autour de la boîte de dialogue contenu.