单击带有 primefaces 的按钮后更新数据 table

Update a data table after click button with primefaces

我有一个数据表、保存按钮、表单。 当我单击保存按钮时,会显示一个确认对话框,其中有两个选项:"yes" 或 "no"。 我的问题是当我点击 "yes" 确认保存时我的数据表没有更新。

我想在不刷新页面的情况下显示我的 DataTable 中的数据。

<p:commandButton value="#{msg['Save']}" icon="ui-icon-disk" 
                                     actionListener="#{cashMvtView.saveCashMvt()}">
                        <p:confirm header="Confirmation" message="Voulez-vous enregistrer ces informations ?" icon="ui-icon-alert"  />                            
                    </p:commandButton>
                    <p:confirmDialog global="true" showEffect="fade" hideEffect="fade" >
                        <p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" update="form2" >

                        </p:commandButton>         
                        <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
                    </p:confirmDialog>

数据表代码:

<h:form id="form2">
            <p:accordionPanel activeIndex="0">
                <p:tab title="Recherche" id="tabRech">
                    <p:dataTable var="cashMvt" value="#{cashMvtView.listeFilteredCashMvt}"  
                                 selectionMode="single" filteredValue="#{cashMvtView.listeFilteredCashMvt}"
                                 selection="#{cashMvtView.selectedCashMvt}" 
                                 rowKey="#{cashMvt.id}"  tableStyle="width:auto"
                                 paginator="true" widgetVar="tabRecherche" id="tabRecherche"
                                 paginatorPosition="bottom"  rows="14"
                                 paginatorTemplate="{Exporters} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} 
                                 {RowsPerPageDropdown} {JumpToPageDropdown} {Controle}" 
                                 >
                        <p:ajax event="rowSelect"  listener="#{cashMvtView.onRowSelect}"  update="form form2" id="ajaxRS" />
                        <f:facet name="{Controle}" id="facetControle"> 
                            <p:commandButton id="toggler" type="button" value="Column"  icon="ui-icon-calculator" style="float:right; width: 150px;"/>
                            <p:columnToggler datasource="tabRecherche" trigger="toggler" id="ccc" />
                        </f:facet> 
                        <p:column style="white-space: nowrap" headerText="#{msg['NumMvt']}" sortBy="#{cashMvt.id}" ><h:outputText value="#{cashMvt.id}" /> </p:column>
                        <p:column style="white-space: nowrap" headerText="#{msg['CatMvt']}" sortBy="#{cashMvt.category}" ><h:outputText value="#{cashMvt.category}" /> </p:column>
                        <p:column style="white-space: nowrap" headerText="#{msg['mvtReference']}" sortBy="#{cashMvt.mvtReference}" ><h:outputText value="#{cashMvt.mvtReference}" /> </p:column>
                        <p:column style="white-space: nowrap" headerText="#{msg['Status']}" sortBy="#{cashMvt.stat}" ><h:outputText value="#{cashMvt.stat}" /> </p:column>
                        <p:column style="white-space: nowrap" headerText="#{msg['mvtCode']}" sortBy="#{cashMvt.mvtCode}" ><h:outputText value="#{cashMvt.mvtCode}" /> </p:column>

您应该将 update="tabRecherche" 添加到您的 <p:commandButton 标签:

<p:commandButton value="#{msg['Save']}"
                 icon="ui-icon-disk" 
                 actionListener="#{cashMvtView.saveCashMvt()}"
                 update="tabRecherche"
                 >
     <p:confirm header="Confirmation" 
                message="Voulez-vous enregistrer ces informations ?" 
                icon="ui-icon-alert"  />                            
</p:commandButton>