对话框关闭事件后 Primefaces 更新组件

Posted

技术标签:

【中文标题】对话框关闭事件后 Primefaces 更新组件【英文标题】:Primefaces update component after dialog close event 【发布时间】:2016-08-30 23:36:31 【问题描述】:

我使用 Primefaces 对话框框架打开一个对话框

RequestContext.getCurrentInstance().openDialog("myDialog", options, null);

然后,我想在对话框的关闭事件之后更新基本页面中的组件。我知道我们可以添加一个 'dialogReturn' ajax 事件

<p:ajax event="dialogReturn" update = ":form:colors"  />

但是如何使用对话框框架以编程方式执行此操作?

【问题讨论】:

有同样的问题..如何将ajax的东西传递给openDialog()-方法 【参考方案1】:

解决方法:

将打开对话框的动作分配给按钮;使用 javascript 调用该按钮的 click() 方法并为其分配一个 dialogReturn:

public void openDialogWithJS()
            RequestContext.getCurrentInstance().execute("$('#myForm\\\\:myButton').click()");
    



public void showDialog()
    RequestContext.getCurrentInstance().openDialog("myDialog", options, null);

<h:form id="myForm">
                <p:commandButton id="myButton" actionListener="#myBean.showDialog" style="display: none;">
                    <p:ajax event="dialogReturn"  update = "myComponentId"/>
                </p:commandButton>
</h:form>

【讨论】:

有个东西叫p:remoteCommand。无需滥用隐藏按钮。

以上是关于对话框关闭事件后 Primefaces 更新组件的主要内容,如果未能解决你的问题,请参考以下文章

Primefaces确认对话框不更新数据表

使用分页在primefaces数据网格上更改页面时更新组件

Primefaces如何更新对话框中的内容并保持对话框居中?

如何在 JSF 上延迟 Primefaces AjaxStatus?

从对话框更新PrimeFaces数据表行

捕获 primefaces <p:autoComplete> 更改事件(检测清空)