当前位置: 首页 > 知识库问答 >
问题:

PrimeFaces4.0:对话框。show()无效

沙宣
2023-03-14

我有一个对话因此:

        <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中,我调用userBean上的active()空闲()。如果用户空闲和其他条件成立真我想显示PinDialog

        if (isPinRequired()) {
            logger.debug("pin required, attempting to show pin dialog");
            RequestContext.getCurrentInstance().execute("pinDialog.show()");
        }

出现日志消息,但屏幕上没有发生任何事情。我还尝试了PF('PinDialog'). show,但没有成功。我做错了什么?

共有1个答案

方心思
2023-03-14

如果您想在页面加载之外的其他时间显示对话框,那么您将需要在对话框表单上使用“渲染”属性。

<p:panelGroup id="mainPanel">
   <p:dialog rendered="#{myBean.showForm}"
   </p:dialog>
</p:panelGroup>

其中showForm是支持bean中的布尔函数,通常返回false。

如果没有外部的p:panelGroup和p:dialog(通常渲染为false),它将永远不会显示,即使渲染设置为true。

 类似资料:
  • 对话框的内容不是在页面最初可见,而是在用户操作时显示额外的信息。 Toasts Materialize 提供了非常简单的方法,来弹出一些信息,同时也不会让用户感到突兀。这些 Toasts 显示的位置和大小会随着你的设备的不同而改变。 在 JavaScript 中调用 Materialize.toast() 方法来使用。 // Materialize.toast(message, displayLe

  • 对话框是一个现代GUI应用不可或缺的一部分。对话是两个人之间的交流,对话框就是人与电脑之间的对话。对话框用来输入数据,修改数据,修改应用设置等等。 输入文字 QInputDialog提供了一个简单方便的对话框,可以输入字符串,数字或列表。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this

  • 打开或保存文件,弹出警告等对话框 进程: 主进程​ 选择多个文件和目录的对话框: 1 const {dialog} = require('electron') 2 console.log(dialog.showOpenDialog({properties: ['openFile', 'openDirectory', 'multiSelections']})) Copied! 对话框默认是在主线程中

  • 显示用于打开和保存文件、警报等的本机系统对话框。 线程:主线程 显示用于选择多个文件和目录的对话框的示例: const { dialog } = require('electron') console.log(dialog.showOpenDialog({ properties: ['openFile', 'openDirectory', 'multiSelections'] })) 这个对话框是

  • 如果有很多输入超出了菜单可以处理的程度,那么我们可以使用对话框来取得输入信息。程序写作者可以通过在某选项后面加上省略号(…)来表示该菜单项将启动一个对话框。 对话框的一般形式是包含多种子窗口控件的弹出式窗口,这些控件的大小和位置在程序资源描述文件的「对话框模板」中指定。虽然程序写作者能够「手工」定义对话框模板,但是现在通常是在Visual C++ Developer Studio 中以交谈式操作的

  • showToast(Object object) 展示 toast 组件,默认 2000 毫秒之后消失 手Q版本:7.8.0 参数 Object object 参数 类型 名称 备注 title string 提示的内容 duration number 延迟时间 2000 ms complete function 接口调用结束的回调函数 选填 示例 BK.UI.showToast({ ti