Troca a tag action do seu botão por actionListener
actionListener="#{ldoBean.salvarLDO}"
Troca a tag action do seu botão por actionListener
actionListener="#{ldoBean.salvarLDO}"
update = “formLDO:dataTableLDO mensLdo dtAnoLdo dtPublic numLei”
Tenta ai.
Poe seu dataTable dentro de um <h:panelGrid> e atualize o panelGrid.
Após validação do meu formulário presente em um dialogo, o datatable não é recarregado com as informações.
Aguém pode ajudar ? Agradeço
<h:form id="formLDO">
<p:dialog widgetVar="dialogLDO" showEffect="explode" showHeader="false" hideEffect="bounce" height="400" width="900" modal="true" resizable="false">
<p:messages id="mensLdo"/>
<p:panel header="Formulário de Cadastro">
<h:inputHidden value="#{ldoBean.ppa.idPpa}" />
<h:inputHidden value="#{ldoBean.ppa.unidadeGestora.idUnidadeGestora}" />
<center>
<p:panelGrid columns="2">
<h:outputLabel value="Plano Plurianual :" /> <h:outputLabel value="#{ldoBean.ppa.dtAnoInicialPpa} / #{ldoBean.ppa.dtAnoFinalPpa}" />
<h:outputLabel value="Número da Lei : " for="numLei" />
<p:inputText id="numLei" value="#{ldoBean.ldo.numLei}" required="true" requiredMessage="Informe o número da lei." />
<h:outputLabel value="Data de Publicação : " for="dtPublic" />
<p:calendar value="#{ldoBean.ldo.dtPublicacao}" locale="pt_BR" id="dtPublic" required="true" requiredMessage="Informe a data de publicação." />
<h:outputLabel value="Ano da Ldo : " for="dtAnoLdo" />
<p:inputText value="#{ldoBean.ldo.dtAnoLdo}" id="dtAnoLdo" required="true" requiredMessage="Informe o ano da Ldo." />
<p:commandButton update="dataTableLDO,mensLdo,dtAnoLdo,dtPublic,numLei" action="#{ldoBean.salvarLDO}" icon="icon-check" value="Cadastrar" />
<p:commandButton id="rejeita" value="Fechar" icon="icon-cancel" onclick="dialogLDO.hide()" type="button" />
</p:panelGrid>
</center>
<br />
<center>
<p:dataTable id="dataTableLDO" var="item"
value="#{ldoBean.listaLdo}" paginator="false" rows="15"
emptyMessage="Não há LDO cadastrada"
paginatorPosition="bottom" style="width:50%; text-align:center;"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">
<f:facet name="header">
<h:outputText value="LISTA DE LDO(S)" style="font-size: 13px; color: #FFFFFF;"/>
</f:facet>
<p:column style="text-align:center;">
<f:facet name="header">
<h:outputText value="NUM. LEI" />
</f:facet>
<h:outputText value="#{item.numLei}" />
</p:column>
<p:column style="text-align:center;">
<f:facet name="header">
<h:outputText value="ANO" />
</f:facet>
<h:outputText value="#{item.dtAnoLdo}" />
</p:column>
<p:column style="text-align:center;">
<f:facet name="header">
<h:outputText value="DATA DE PUBLICAÇÃO" />
</f:facet>
<h:outputText value="#{item.dtPublicacao}">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
</h:outputText>
</p:column>
</p:dataTable>
</center>
<br />
</p:panel>
</p:dialog>
</h:form>
Segue a minha datatable descarregada após a validação mesmo tendo mudado para actionlistner.
Continuou da mesma forma. Quando eu tiro o “dataTableLDO” de dentro da tag do UPDATE a datatable não perde os elementos da lista após a validação. Só que tem um pequeno problema, quando eu realizo o cadastro com sucesso a datatable não atualiza pois ela precisa estar dentro da tag UPDATE.
Mesmo colocando dentro do <h:panelGrid> o erro continua.