我有一个数据表和一个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',但它仍无效。
接受任何其他技巧
答案 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而没有显示在我的数据表中。