如何在文件上传后更新数据表?

时间:2018-04-15 22:57:28

标签: file-upload primefaces datatable updates

我有一个数据表和一个fileUpload。当我单击上传按钮时,我将其保存在我的数据库中,但它没有在我的数据表中更新,所以我需要刷新我的页面以在datatable中显示我的数据。 我的目的是当我点击上传按钮时,我将其保存在数据库中并更新我的数据表。

我的文件上传:

<p:fileUpload fileUploadListener="#{cashMvtView.handleFileUpload}" mode="advanced" dragDropSupport="false"
                                   multiple="true" update="form2" sizeLimit="100000" fileLimit="3" allowTypes="/(\.|\/)(csv|xls|xlsx)$/" />
                    <p:growl id="messages" showDetail="true"  />

我的数据表:

<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}" 
                                 >

注意:虽然有update ='form2',但它仍无效。

接受任何其他技巧

2 个答案:

答案 0 :(得分:0)

您可以尝试添加oncomplete="PF('myTableWidget').filter();" 如下:

<p:fileUpload fileUploadListener="#{cashMvtView.handleFileUpload}" mode="advanced" dragDropSupport="false"
                    oncomplete="PF('myTableWidget').filter();"
                    multiple="true" update="form2" sizeLimit="100000" fileLimit="3" allowTypes="/(\.|\/)(csv|xls|xlsx)$/" />
      <p:growl id="messages" showDetail="true"  />

您还需要在表格中添加一个widgetVar(widgetVar="myTableWidget"

答案 1 :(得分:0)

我通过删除数据表中的filtredValue来解决问题。 我认为真正的原因在于filtredValue,因为当我上传我的文件时,数据会保存在我的数据库中,但由于filtredValue而没有显示在我的数据表中。