Primefaces确认对话框不更新数据表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Primefaces确认对话框不更新数据表相关的知识,希望对你有一定的参考价值。
我想在用户从确认对话框确认操作后更新数据表,但它不起作用。
<p:panel id="formPanel" header="Welcome #{sessionBean.name}">
<h:form id="dtForm">
<p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" globalOnly="true" />
<p:dataTable id="classList" var="class" value="#{listClassBean.classList}" widgetVar="classListDT"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
paginator="true" rows="10" rowsPerPageTemplate="5,10,15" paginatorPosition="bottom"
rowKey="#{class.classroomId}" style="margin: 20px 20px 20px 20px;">
<!--columns omitted-->
<p:column headerText="Exit" rendered="#{sessionBean.loggedAccount.accType == 'S'}"
style="width: 50px; text-align: center;">
<p:commandButton icon="fa fa-sign-out" action="#{listClassBean.exitClass(class.classroomId)}"
styleClass="redbutton" process="dtForm:classList" update="dtForm:classList">
<p:confirm header="Exit Class"
message="Are you sure you want to exit the class #{classroomSettingBean.classroom.classroomId}?"
icon="ui-icon-alert"/>
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
</p:panel>
<h:form>
<p:confirmDialog global="true" showEffect="clip" hideEffect="clip">
<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check"/>
<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</h:form>
一切都表现良好,只是它没有更新数据表。任何的想法?
答案
您只需要在表单和面板之间进行反向,如下所示:
<h:form id="dtForm">
<p:panel id="formPanel" header="Welcome #{sessionBean.name}">
....
</p:panel>
</h:form>
另一答案
添加p:remoteCommand。我有一个相关的问题,这是我如何解决它,只是我使用p:对话框。 textarea更新了dataTable'myDataTable'中的记录“MyMessage”。
<p:dialog header="Customize Message" id="editDlg" widgetVar="displayDlg" modal="true" resizable="false" width="450">
<p:inputTextarea id="resin" value="#{MyBean.myMessage}" style="width: 400px; height: 150px; padding: 10px; resize: none" maximum="550" />
<p:commandButton value="Cancel" onclick="PF('displayDlg').hide()" style="width: 75px; left: 220px" /><br/>
<p:commandButton value="Update" action="#{myBean.updateMyMessage()}" update="form:my_growl" onclick="PF('displayDlg').hide()" style="width: 75px; left: 220px" oncomplete="refreshTable();" />
</p:dialog>
<p:remoteCommand name="refreshTable" action="#{myBean.loadChangedData()}" partialSubmit="true" process="@this, editDlg" update="myDataTable" />
以上是关于Primefaces确认对话框不更新数据表的主要内容,如果未能解决你的问题,请参考以下文章
JSF 2.0 更新 primefaces 对话框第一次不起作用
Primefaces如何更新对话框中的内容并保持对话框居中?
从 Backing Bean 显示 Primefaces confirmDialog