Bom dia Pessoa tenho o seguinte cenário;
- Tenho uma Lista , que esta dentro de uma modal p:dialog;
- Na modal tem um filtro por Data Inicial e Data Final usando o p:calendar, esses filtros não estão vinculado a uma coluna do DataTable, mas utilizo uma ajax para filtrar na lista da DataTable;
<p:ajax event="dateSelect" process="@this" listener="#{historicoVwListMB.onDateSelect}" oncomplete="PF('dateRangeWidget').filter()" maxdate="#{historicoVwListMB.dataFinalAndamentos}" update="accordionLista:listaArquivosUnicos"/>
O filtro funciona legar … o problema é quando eu fecho a modal mesmo limpando os campos e atualizando a DataTable com update update="formDownloadArquivo:listaArquivosUnicos. formDownloadArquivo:tamanhoArquivo , dataInicialAndamentos, dataFinallAndamentos">
quando eu abro novamente a dialog, ele não consegue atualizar a lista dentro do datatable, e aparece a lista já filtrada … já fiz de tudo não consigo sair disso.
Alguém já passou por esse problema, segue o código abaixo
<p:dialog id="dialogDocumentoUnico" header="Gerar Documento Único" responsive="true" widgetVar="widgetDialogDocumentoUnico"
dynamic="true" width="60%" height="650px" modal="true" appendTo="@(body)" resizable="false">
<h:form id="formDownloadArquivo">
<div class="Wid100 DispBlock MarAuto">
<div class="Wid100 MarAuto WidAutoOnMobile">
<p:panel style="border: none; margin: 0px; padding:0px;">
<b><h:outputText value="Informe a data inicial e data final dos andamentos:" escape="false" /></b>
</p:panel>
<br/>
<p:panelGrid id="pnlDataFiltro" columns="4" layout="grid" columnClasses="ui-grid-col-2,ui-grid-col-2,ui-grid-col-2,ui-grid-col-2" style="width: 90%; border: none;">
<p:outputLabel value="Data Inicial: "></p:outputLabel>
<p:calendar locale="pt" id="dataInicialAndamentos" value="#{historicoVwListMB.dataInicialAndamentos}" converter="sraCalendarConverter" pattern="dd/MM/yyyy" showOn="button">
<p:ajax event="dateSelect" process="@this" mindate="#{historicoVwListMB.dataInicialAndamentos}"></p:ajax>
</p:calendar>
<p:outputLabel value="Data Final: "></p:outputLabel>
<p:calendar locale="pt" id="dataFinallAndamentos" value="#{historicoVwListMB.dataFinalAndamentos}" converter="sraCalendarConverter" pattern="dd/MM/yyyy" showOn="button">
<p:ajax event="dateSelect" process="@this" listener="#{historicoVwListMB.onDateSelect}" oncomplete="PF('dateRangeWidget').filter()" maxdate="#{historicoVwListMB.dataFinalAndamentos}" update="accordionLista:listaArquivosUnicos"/>
</p:calendar>
</p:panelGrid>
<br/>
<p:panel style="border: none; margin: 0px; padding:0px; text-align: center;" styleClass="showcase-text-align-center">
<h:outputText value="(Para retornar todos os documentos deixe a data em branco)" escape="false" style="width: 100%;" />
</p:panel>
<br/>
<p:panel widgetVar="widgetTamanhoArquivo" style="border: none; margin: 0px; padding:0px;">
<b><h:outputLabel id="tamanhoArquivo" value="Tamanho arquivos gerado: #{historicoVwListMB.cacheTamanhoArquivo}" escape="false" /></b>
</p:panel>
<br/>
<p:accordionPanel id="accordionLista" activeIndex="-1">
<p:tab title="Selecionar Arquivos">
<p:dataTable id="listaArquivosUnicos" var="l" rowKey="#{l.id}" value="#{historicoVwListMB.listaExecutaFiltrosArquivos}"
style="border: none;" emptyMessage="Não foi encontrado nehnhum documento."
selection="#{historicoVwListMB.documentoSelecionados}"
widgetVar="dateRangeWidget"
scrollable="true" scrollHeight="230">
<p:ajax event="rowSelectCheckbox" listener="#{historicoVwListMB.onRowSelect}" update="formDownloadArquivo:tamanhoArquivo formDownloadArquivo:btnDownload"/>
<p:ajax event="toggleSelect" partialSubmit="true" listener="#{historicoVwListMB.onAllSelect}"/>
<p:ajax event="rowUnselectCheckbox" listener="#{historicoVwListMB.rowUnselectCheckbox}" update="formDownloadArquivo:tamanhoArquivo formDownloadArquivo:btnDownload"/>
<p:column selectionMode="multiple" width="20"/>
<p:column style="width:30%" headerText="Data/Hora">
<h:outputText value="#{l.historico.dthHistorico}" converter="sraCalendarConverter" pattern="dd/MM/yyyy HH:mm:ss" />
</p:column>
<p:column headerText="Arquivos para download">
<h:outputText value="#{historicoVwListMB.mostraNomeDocumento(l)}" />
</p:column>
<p:column headerText="Tamanho do arquivo">
<h:outputText value="#{historicoVwListMB.tamanhoArquivoOriginal(l)}" />
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>
<p:separator />
<table id="tableDownload" width="100%" style="border:0px">
<tr>
<td width="100%" align="center">
<p:commandButton id="btnDownload" value="Download" widgetVar="download"
ajax="true"
onclick="PF('widgetDialogDocumentoUnico').hide();PrimeFaces.monitorDownload(showStatus, hideStatus);"
disabled="#{!historicoVwListMB.possuidocumentoSelecionado}" update="formDownloadArquivo formDownloadArquivo:tamanhoArquivo pnlDataFiltro">
<p:fileDownload value="#{historicoVwListMB.gerarDocumentoUnico()}" />
</p:commandButton>
<p:commandButton id="btnDialogLimpar" value="Limpar" actionListener="#{historicoVwListMB.limparCamposFiltro}"
process="@this" update="accordionLista:listaArquivosUnicos, formDownloadArquivo:tamanhoArquivo, dataInicialAndamentos, dataFinallAndamentos">
</p:commandButton>
<p:commandButton id="btnDialogFechar" value="Fechar" action="#{historicoVwListMB.fecharDialogELimparCampos}"
actionListener="#{historicoVwListMB.limparCamposFiltro}"
process="@this" update="formDownloadArquivo:tamanhoArquivo , dataInicialAndamentos, dataFinallAndamentos">
</p:commandButton>
</td>
</tr>
</table>
<br/>
<p:panel style="border: none; margin: 0px; padding:0px;" rendered="#{historicoVwListMB.gerandoDocumentoUnico}">
<b><h:outputText value="Gerando Documento Único, aguarde..." escape="false" /></b>
</p:panel>
</div>
</div>
<p:remoteCommand name="rc" process="@this" update="formDownloadArquivo" />
</h:form>
</p:dialog>
Botão fechar:
public void fecharDialogELimparCampos() {
RequestContext.getCurrentInstance().execute("PF('widgetDialogDocumentoUnico').hide();");
}
public void limparCamposFiltro() {
this.limparDataInicialAndamentos();
RequestContext.getCurrentInstance().update("formDownloadArquivo:accordion:listaArquivosUnicos");
RequestContext.getCurrentInstance().execute("PF('dateRangeWidget').unselectAllRows();");
RequestContext.getCurrentInstance().execute("PF('dateRangeWidget').clearFilters();");
}