我试图在JSF中使用p:commandLink打开一个对话框。
<p:commandLink id="linkId" update="@this someDialogId" value="open dialog" action="#{someBean.someAction(id)}"/>
<p:dialog closable="true" id="someDialogId" closeOnEscape="true" maximizable="true" minimizable="true" fitViewport="true" modal="true" header="Task Details" rendered="#{someBean.displayDiag}" visible="#{someBean.displayDiag}" >
// Something displayed
</p:dialog>
但是当我点击p:commandLink时,什么都没有发生?
这个 p:commandLink和p:dialog 位于同一个表单中的不同div中。
请看PrimeFaces的展示。https:/www.primefaces.orgshowcaseuioverlaydialogbasic.xhtml
你更新了对话框,但你没有打开它。
首先,你的对话框需要一个widgetVar属性。比如说它是 "myDialog"。
然后在你的commandLink中,你为oncomplete添加一个java脚本处理程序。在这里你就可以打开对话框了。
像这样 <p:commandLink ... oncomplete="PF('myDialog').show()" ... />