Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Francisco

Dados do SelectOneMenu desaparecem ao dar update no formulário

Recommended Posts

Pessoal, utilizo Primefaces 3.5 e estou há uma semana quebrando a cabeça com um problema que tenho certeza que a solução é a mais besta possível, mas não estou encontrando. Seguinte:
Tenho um diálogo que é acionado clicando em um commandLink. Nesse diálogo carrego algumas informações do dataTable, além de disponibilizar alguns campos para preenchimento, entre eles um selectOneMenu.
Para carregar o objeto a ser mostrado no diálogo dou um update no formulário "frmTratamento". O que acontece é que quando dou o update os dados do selectOneMenu que está no diálogo desaparecem, ou ficam ocultos para o cliente. Se não der o update eles ficam visíveis, no entanto os dados do objeto não são carregados. Segue abaixo partes do código.
Código do botão:
<p:dataTable id="dttResumo" value="#{controller.listaContatoResumo}" var="listaResumo"
rowKey="#{listaResumo.idContato}"
filteredValue="#{controller.contatoResumoFiltrado}"
emptyMessage="Nenhum atendimento cadastrado."  
scrollable="false"
paginator="true" rows="10"  
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
rowsPerPageTemplate="5,10,15"
paginatorAlwaysVisible="false">

<p:column id="protocolo" 
filterBy="#{listaResumo.protocolo}"   
headerText="Protocolo"   
filterMatchMode="contains" 
filterStyle="width: 80px;"
width="90">

<p:commandLink id="linkProtocolo" update=":frmTratamento" 
action="#{controller.trataAtendimento}" oncomplete="dlgTratamento.show();" >
<h:outputText value="#{listaResumo.protocolo}" styleClass="texto12Titulo"/>
<f:setPropertyActionListener value="#{listaResumo}" target="#{controller.contatoResumo}"/>
</p:commandLink>
</p:column>
</p:dataTable>

 

 

Código do diálogo:
<p:dialog id="_dlgTratamento" widgetVar="dlgTratamento" header="GAT - Tratamento"
resizable="false" modal="true" draggable="true" closable="true" width="800" showEffect="clip" hideEffect="fold">

<h:form id="frmTratamento">

<h:panelGrid columns="1" width="100%">

<p:fieldset>

<h:panelGrid id="nrProt" columns="2">
<p:outputLabel value="Protocolo Número:" for="nrProtocolo" styleClass="texto14"/>
<h:outputText value="#{controller.contato.protocolo}" id="nrProtocolo" styleClass="texto14Titulo"/>
</h:panelGrid>

</p:fieldset>

<p:spacer height="10"/>

<p:fieldset legend="Dados do Atendimento">

<h:panelGrid id="dadosAtendimento" columns="3" styleClass="pGridIcones">

<p:outputLabel value="Tipo de Dependência:" styleClass="texto12Titulo"/>
<h:column />
<h:outputText value="Dependência Interna" rendered="#{controller.contato.tipoDemandante==1}" />
<h:outputText value="Dependência Externa" rendered="#{controller.contato.tipoDemandante==2}" />

<p:outputLabel value="Matrícula/Código:" styleClass="texto12Titulo"/>
<h:column />
<h:outputText value="#{controller.contato.matriculaDemandante}" />

<p:outputLabel value="Nome:" styleClass="texto12Titulo"/>
<h:column />
<h:outputText value="#{controller.funcionario.nome}" rendered="#{controller.contato.tipoDemandante==1}"/>
<h:outputText value="#{controller.demExterno.nome}" rendered="#{controller.contato.tipoDemandante==2}"/>

<p:outputLabel value="Módulo:" styleClass="texto12Titulo"/>
<p:commandLink update=":frmModulo:msgModulo" oncomplete="dlgAlterarModulo.show()" immediate="true">
<h:graphicImage library="img" name="edit.png" title="Alterar"/>
</p:commandLink>
<h:outputText value="#{controller.modulo.nome}"/>

<p:outputLabel value="Atividade:" styleClass="texto12Titulo"/>
<p:commandLink update=":frmAtividade:msgAtividade" oncomplete="dlgAlterarAtividade.show()" immediate="true">
<h:graphicImage library="img" name="edit.png" title="Alterar"/>
</p:commandLink>
<h:outputText value="#{controller.atividade.nome}"/>

</h:panelGrid>

</p:fieldset>

<p:spacer height="10"/>

<p:fieldset legend="Tratamento">

<h:panelGrid columns="2" styleClass="pGridFormulario">

<p:outputLabel value="Resposta:"/>
<p:inputTextarea value="#{controller.tratamento.anotacoes}" cols="70" rows="5" />

<p:outputLabel value="Referência (IN):"/>

<h:panelGrid columns="2">
<p:inputText value="#{controller.tratamento.instrucao}" size="30" maxlength="45"/>
<h:outputText value="(Opcional)" />
</h:panelGrid>

<p:outputLabel value="Situação:" />
<p:selectOneMenu value="#{controller.tratamento.idStatus}" style="vertical-align:middle;" >
<f:selectItem itemLabel="Aguardando" itemValue="1"/>
<f:selectItem itemLabel="Redirecionado" itemValue="2"/>
<f:selectItem itemLabel="Concluído" itemValue="3"/>
</p:selectOneMenu>

</h:panelGrid>

</p:fieldset>

<p:spacer height="10"/>

<h:panelGrid columns="2">
<p:commandButton id="btnSalvar" value="Salvar"/>
<p:commandButton value="Descartar" onclick="dlgTratamento.hide();"/>
</h:panelGrid>

</h:panelGrid>

</h:form>

</p:dialog>

 

Agradeço a ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Descobri" o problema. Substituí o componente selectOneMenu. Eu estava usando o do Primefaces <p:selectOneMenu> e quando passei a usar o nativo do JSF <h:selectOneMenu> funcionou.

 

Estou usando a versão 3.5 do PF e pelo visto ela ainda possui bugs.

 

Obrigado pelas contribuições.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.