[RESOLVIDO] PrimeFaces dialog não atualiza

Pessoal, não estou conseguindo carregar dados em um dialog que é aberto quando clico em um link e o mesmo deveria mostrar os itens.
Ja debuguei e os registros estao carregando certinho no MB mas o dialog abre em branco não atualiza.
Ja tentei varias formas, como o comando update e não consegui.
Alguem pode me ajudar,
obrigado.

poste o código ai, fica mais fácil

sem o codigo fica dificil… mas provalvemente vc tá esquecendo de dar um update no dialog…XD


pagina.jsf 

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 

xmlns:p="http://primefaces.org/ui" 
template="templateLayout.xhtml"> 
<ui:define name="content"> 

<f:view> 
<link href="#{facesContext.externalContext.requestContextPath}/styles.css" rel="stylesheet" type="text/css"/> 
<meta name="robots" content="noindex,follow"/> 



<br/><br/> 
<h:form id="formReceitaTrans" > 



<p:panel id="panelGridReceita" header="F.C. Barcelona" footer="Visca el Barca!"> 

........... 
............ 

<p:commandLink 
id="botaoEmpenhos7" 
title="Mostrar Itens" 
action="#{receitaBackTrans.listarItensReceita(receita)}" 
update=":frmModal" 
oncomplete="dlg2.show();"> 

<h:outputText value="#{receita.qtdeLancamentos}" /> 
</p:commandLink> 

</p:panel> 

</h:form> 


<h:form id="frmModal"> 
<p:dialog id="modalDialog2" header="Modal Dialog" widgetVar="dlg2" modal="true" height="100"> 
<h:outputText value="This is a Modal Dialog. 6" /> 

<h:form id="formPanelEmpenhosTrans55"> 

<h:dataTable id="formReceitaTrans0233" 
value="#{receitaBackTrans.receita.itensReceita}" 
var="item" 
cellpadding="4" 
cellspacing="1.5" 
rowClasses="linhaImpar,linhaPar" 
headerClass="header" 
styleClass="dataTables"> 


<h:column id="formReceitaTrans02133"> 
<f:facet name="header" id="formReceitaTrans02332"> 
<h:outputText value="Ficha" id="formReceitaTrans02333"/> 
</f:facet> 
<h:outputText value="#{item.numLancamento}" /> 
</h:column> 


</h:dataTable> 

</h:form> 
</p:dialog> 
</h:form> 


</f:view> 


</ui:define> 
</ui:composition> 



MB 
public void listarItensReceita(Receita receita) { 
int codEnt = 1; 

receita.setItensReceita(new ArrayList<LancReceita>()); 

Connection conexao; 
try { 
conexao = ConnectionFactory.getConnection(); 

StringBuilder sb = new StringBuilder("SELECT "); 
sb.append(" CONCAT(L.LREC_NUM,'/', L.LREC_EXERCICIO) AS NUMLANCAMENTO, "); 
sb.append(" L.LREC_DATA, "); 
sb.append(" L.LREC_VALOR, "); 
sb.append(" L.LREC_HISTORICO "); 
sb.append(" FROM LANCRECEITA_CONT L "); 
sb.append(" WHERE L.LREC_IDENT = " + codEnt); 
sb.append(" AND L.LREC_NUMFICHA = " + (receita.getNumFicha() == null ? "0" : receita.getNumFicha())); 
sb.append(" AND L.LREC_TIPOFICHA = " + (receita.getTipoFicha() == null ? "0" : receita.getTipoFicha())); 
sb.append(" AND L.LREC_EXERCICIO = " + (receita.getExercicioFicha() == null ? " 2012 " : receita.getExercicioFicha())); 
sb.append(" ORDER BY NUMLANCAMENTO"); 

PreparedStatement stmt = conexao.prepareStatement(sb.toString()); 

ResultSet rs = stmt.executeQuery(); 

LancReceita c = null; 

while (rs.next()) { 
c = new LancReceita(); 

c.setNumLancamento(rs.getString("NUMLANCAMENTO")); 
c.setDataLancamento(rs.getString("LREC_DATA")); 
c.setValorLancamento(rs.getString("LREC_VALOR")); 
c.setHistorico(rs.getString("LREC_HISTORICO")); 

receita.getItensReceita().add(c); 
} 
} catch (SQLException ex) { 
Logger.getLogger(ReceitaBacking.class.getName()).log(Level.SEVERE, null, ex); 
} finally { 
System.out.println("Qtde Items: " + receita.getItensReceita().size()); 
} 
} 


um form dentro de outro
não precisa disso

apenas deixe o form que está dentro do dialog
lembre de modificar seu update colocando o nome
do outro form

tirei o primeiro form do dialog e mudei o update do commandLink para formPanelEmpenhosTrans55 porem continua não trazendo os registros.
debuguei novamente e quando clico no comandLink carregar certinho os dados porem não mostra no dialog.
estou preso nesse problema faz tempo…

Obrigado

Alguem ja usou um dialog do PrimeFaces para mostrar dados ?
Sera que é um erro do componente de não atualizar,

Estou travado nisso, por favor uma luz…

Obrigado

Calma velho ‘-’

Ta vendo isso ?

<p:commandLink   
id="botaoEmpenhos7"   
title="Mostrar Itens"   
action="#{receitaBackTrans.listarItensReceita(receita)}"   
update=":frmModal"   
oncomplete="dlg2.show();">

Faz um debug e ve se ele ta entrando nesse metodo e com os valores preenchidos, de qualquer forma vou lhe dar uma ideia.

nesse seu commandLink voce poe no action um metodo void, que nao receba parametros. E tambem poderia po no update assim, update=":formModal:modalDialog2:formPanelEmpenhosTrans55:formReceitaTrans0233"

La no metodo void, no seu bean, voce pega sua lista e da valor a ela. exemplo:

Digamos que ao clicar no commandLink voce executa o metodo listarItensReceita, dentro do metodos listarItensReceita voce faria assim

public void listarItensReceita() {
this.listaItens = this.metodoquepegaalistadobanco
}

E la no seu datatable, voce chamaria a variavel lista:

<p:datatable....   value:"#{seuBean.listaItens}"

deu erro, duplicou o post.

Aaaaa, so pra constar, eu tava com esse problema uma vez, tb to começando agora em JSF + Primefaces, mas hoje ja sei como resolver a bronca. Simplesmente crie uma variavel lista no seu bean, e trabalhe com ela.

Deu certo! passei a trabalhar com a variavel lista e funcionou.

Quero agradecer aqui todos amigos que contribuiram.
Muito Obrigado!

Edite seu topico acrescentando a palavra resolvido, caso tenha solucionado seu problema =D

Vlw!