Jsf 从母版页关闭后销毁primefaces对话框中的数据

Jsf 从母版页关闭后销毁primefaces对话框中的数据,jsf,primefaces,managed-bean,Jsf,Primefaces,Managed Bean,在我的页面中,有一些命令按钮可以打开与表格的对话框。 表中有300行,关闭HTML对话框后不会销毁并持久保存在HTML页面中。 我想在隐藏后销毁对话框中的数据。单击命令按钮后,重复操作加载对话框并在对话框中加载数据。 我找到了这个方法 但不知道如何从facescontext销毁对话框 我想这对你有帮助。 假设您有一个commandButton: <p:commandButton id="button" value="Button" actionListener="#{dialogBea

在我的页面中,有一些命令按钮可以打开与表格的对话框。 表中有300行,关闭HTML对话框后不会销毁并持久保存在HTML页面中。 我想在隐藏后销毁对话框中的数据。单击命令按钮后,重复操作加载对话框并在对话框中加载数据。 我找到了这个方法



但不知道如何从facescontext销毁对话框

我想这对你有帮助。
假设您有一个commandButton:

<p:commandButton id="button" value="Button" actionListener="#{dialogBean.populateDataTable}" onComplete="yourDialog.show()" update="@form">

假设您有以下对话框


钮扣


如果不需要ajax请求,也可以在对话框的
onHide
中调用
PF('dlgVar').content.empty()



我的问题就在这里。如何填充dataTable(PopulatedDataTable中的命令)?@Jeus我已经更新了我的答案,请告诉我您是否清楚。只需在
populateDataTable(ActionEvent事件)
方法中填充列表/模型(为
输入)。您的意思是希望在关闭对话框后通过从DOM树中删除元素来减轻DOM树的重量@Jeus@HatemAlimam是的,我想在manageBean dialogBean.handleClose,thnx中删除dialog(母版页中的HTML DOM)plz write方法中的表中的数据。如果您只需要清空,这将在没有任何服务器端方法的情况下完成。我已经更新了这个问题,在上一个代码中,您可以看到不需要ajax请求,只需在onHide上调用它,你没事@是的。隐藏页面的对话框内容之后?很好,tanks。除了使用
RequestContext.getCurrentInstance().execute(“showDialog('dialogBox')”)
<p:dialog  widgetVar="yourDialog" dynamic="true" >
    <p:dataTable value="#{dialogBean.yourList}"..........> ...   </p:dataTable>
</p:dialog>
public void populateDataTable(ActionEvent event) {
    //Populate data here to be shown in `<p:dataTable>` inside `<p:dialog>`
    //yourList = new ArrayList<yourObject>();
    //allresult = fetchdataFromDB();
    //yourList.addAll(allresult);
}