单击撇号中的ESCAPE(ESC)时,关闭所有对话框

use*_*313 5 java jsf primefaces

我正在使用4-5 Primefaces对话框。单击ESC时,我想关闭所有打开的对话框。

Ako*_*s K 4

hide()通过 指定的客户端对象调用对话框的函数widgetVar。所以如果你定义了你p:dialog喜欢的:

<p:dialog widgetVar="dialog1" header="Dialog 1"/>
<p:dialog widgetVar="dialog2" header="Dialog 2"/>
Run Code Online (Sandbox Code Playgroud)

您的 ESC 按钮应如下所示:

<p:commandButton value="ESC" onclick="dialog1.hide();dialog2.hide()"/>
Run Code Online (Sandbox Code Playgroud)

您还可以创建一个可重用的对话框来关闭所有对话框,并在您的或 中p:remoteCommand使用它- 如果“单击 ESCAPE”意味着点击 Escape 按钮:p:commandButtonp:hotkey

<p:remoteCommand name="closeAll" onsuccess="dialog1.hide();dialog2.hide()"/>
Run Code Online (Sandbox Code Playgroud)

然后在您的组件中引用以下closeAll()命令:

<p:hotkey bind="esc" handler="closeAll()"/>
<p:commandButton value="ESC" onclick="closeAll()"/>
Run Code Online (Sandbox Code Playgroud)