我想通过Remote tecommand操作打开一个对话框,并从页面后备bean中的closeDialog(Object data)
中获取值。远程命令在页面加载时正确触发bb中的actionListener
<p:remoteCommand autoRun="true" actionListener="#{userManagerBB.showDialog}"/>
使用此show Dialog方法也可以正确显示对话框:
public void showDialog(ActionEvent e){
...
otherBean.openDialog(selectedUser);
}
在另一个Bean中:
public void openDialog(SiteUser user) {
...
RequestContext.getCurrentInstance().openDialog("userDialog", options, params);
}
问题是,我不知道如何聆听由以下事件引发的事件:
RequestContext.getCurrentInstance().closeDialog(user);
在PF示例中http://www.primefaces.org/showcase/ui/dialogFrameworkData.jsf命令按钮和p: ajax是这样使用的
<p:commandButton value="Select Car" icon="ui-icon-extlink" actionListener="#{dialogBean.chooseCar}">
<p:ajax event="dialogReturn" listener="#{dialogBean.onCarChosen}" update="growl" />
</p:commandButton>
但是我不能将p: ajax
放在远程命令
标记中:
<p:ajax> Unable to attach <p:ajax> to non-ClientBehaviorHolder parent
我还尝试将ajax
行为添加到隐藏的命令按钮中,但侦听器从来没有这样调用过。(当然,我可以在支持bean之间进行数据同步,但这会损害可重用对话框的设计)
有什么方法可以解决这个问题吗?
我通过创建隐藏的命令按钮并从remoteCommand调用javascript解决了这个问题:
<p:remoteCommand autoRun="true" oncomplete="sync.jq.click()"/>
<p:commandButton widgetVar="sync" actionListener="#{userManagerBB.showDialog}" style="display:none" >
<p:ajax event="dialogReturn" listener="#{userManagerBB.userChanged}" update="form"/>
</p:commandButton>
JSF2.2;PrimeFaces 5.3 我的目标是通过单击X按钮捕获用户关闭对话框,返回到父页面,以便刷新数据并更新表单。 我能够让p:remoteCommand调用DialogBean中的confirmAndCloseDialog()方法,但从未调用ParentBean中的onDialogReturn()方法。为什么不调用onDialogReturn?我能让它工作吗? 顺便说一句,如果用户以
问题内容: 我正在开发一个程序,该程序可以从文本文件加载和保存数据,并且正在询问用户加载和保存JFileChooser的文件名。 这个问题与 保存 对话框有关:。然后,用户可以在没有任何警告的情况下覆盖现有文件,这 将是一个问题 。 关于如何解决此问题的任何建议?我一直在寻找某种方法或选项,但没有发现任何东西。 提前致谢。 问题答案: 感谢您提供答案,但是我发现了另一个解决方法,可以用这种方法覆盖
我正试图从回收器视图图像点击打开一个对话框...该对话框包含一个视图页来创建一个滑动视图库.. 错误>>> E/AndroidRuntime:致命异常:main process:com.example.cosmic.zumi_test,pid:22289 java.lang.nullpointerException:试图在Android.support.v4的Android.support.v4的
对话框的内容不是在页面最初可见,而是在用户操作时显示额外的信息。 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! 对话框默认是在主线程中