Olá pessoal, boa noite.
Estou com um problema que já vem ocorrendo a vários dias. Mudanças demasiadas, pesquisas infinitas no google e até agora não consegui resolver. Tenho um dialog que possui um painelGrid que é renderizado ao selecionar um item numa tabela. Porém o itemSelecionado nunca é o atual, mas sim o anterior. E a primeira vez a painelGrid não é exibida, o que indica que o painelGrid não está sendo renderizado após a sua conclusão.
Segue um trecho do código abaixo, coluna da tabela com um commandLink que seta o usuário selecionado e seta true para o painelGrid ser exibido dentro do dialog:
<p:column>
<p:commandLink id="cdlConsultaUsuario" actionListener="#{usuarioController.preparaUsuarioSelecionado}"
async="true" ajax="true" oncomplete="dlgConteudo.show();" update="pgrUsuario pnlCentro">
<h:graphicImage url="/img/buscar.png" title="#{msg['botao.buscar']}" />
<f:setPropertyActionListener value="#{usuario}" target="#{usuarioController.usuarioSelecionado}" />
<f:setPropertyActionListener value="#{true}" target="#{usuarioController.exibePainelGrid}" />
</p:commandLink>
</p:column>
Dialog com o campo do usuario selecionado:
Exibe o dialog com o usuário selecionado e exibe o painelGrid. Como disse anteriormente a renderização através do update=‘pgrUsuario’ não está funcionando, pois a primeira vez o painelGrid não é exibido e o usuário selecionado sempre é o penultimo.
<p:dialog id="dlgConteudo" widgetVar="dlgConteudo" width="700px;" effect="FADE"
fixedCenter="true" resizable="false">
<p:panel id="pnlCentro">
<f:facet name="header">
<h:outputText value="#{msg['usuario.detalhe']}" styleClass="fonteTitulo" />
</f:facet>
<h:panelGrid id="pgrUsuario" columns="2" rendered="#{usuarioController.exibePainelGrid}">
<h:outputLabel value="#{msg['usuario.nome']}" />
<h:inputText id="iptNome" value="#{usuarioController.usuarioSelecionado.nmUsuario}" size="70" maxlength="100"
onkeyup="this.value = somenteCaracteres(this.value)" required="true"
requiredMessage="#{msg['usuario.nome.requerido']}" />
<h:inputHidden />
</h:painelGrid>
</p:painel>
</p:dialog>
Quem puder me ajudar nessa questão, agradeço desde já.
Abs a todos,
Lessandro