我有一个对话:
<p:dialog id="pinDialog" widgetVar="pinDialog" width="800" binding="#{userBean.pinCheckDialog}" closable="false" modal="true" closeOnEscape="false" showEffect="clip" hideEffect="clip">
<h:form id="pinEntry">
<p:messages for="messagesForPinCheck"/>
<p:outputLabel for="pinCode" value="#{messages.PinCodeRequired}"/>
<p:inputText value="#{userBean.enteredPin}" size="4" id="pinCode"/>
<p:commandButton value="#{messages.PinCodeSubmit}" update="@form" action="#{userBean.submitPin()}"/>
</h:form>
</p:dialog>
在idleMonitor
active()
内idle()
userBean
和pinDialog
。如果用户空闲且其他条件成立,我想显示 if (isPinRequired()) {
logger.debug("pin required, attempting to show pin dialog");
RequestContext.getCurrentInstance().execute("pinDialog.show()");
}
:
PF('pinDialog').show
显示日志消息,但屏幕上没有任何反应。我也试过{{1}}但没有成功。我做错了什么?
答案 0 :(得分:0)
如果您想在页面加载之外的其他时间显示对话框,那么您将需要使用&#39;渲染&#39;对话框表单上的属性。
<p:panelGroup id="mainPanel">
<p:dialog rendered="#{myBean.showForm}"
</p:dialog>
</p:panelGroup>
showForm是你的支持bean中的布尔函数,正常返回false。
如果外部p:panelGroup和p:对话框通常呈现为false,即使将render设置为true,也不会显示。