Modal do Primefaces <p:dialog> não exibe os dados do objeto da linha do DataTable

Bom Dia Galera!!

Estou tentando a dias, mas não achei a solução, já googleei e nada.

Vejam meu código:

O Botão no DataTable:

<p:commandButton styleClass="ui-button-text-no-padding" ajax="true" oncomplete="dlgVisualizar.show();" update="dlgVisualizar" action="#{bean.visualizar}" icon="ui-icon-pencil" title="Editar"> <f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" /> </p:commandButton>

O Dialog:

[code]<p:dialog header=“Visualizar” widgetVar=“dlgVisualizar” modal=“true” closable=“false”>
<p:fieldset legend=“Visualização” style=“width: 890px;” styleClass=“semBorda”>

		                <h:panelGrid id="display" columns="4" styleClass="semBorda">
		                    
		                    <h:outputLabel value="Valor 1: " />
		                    <h:outputLabel value="Valor 2: " />
		                    <h:outputLabel value="Valor 3: " />
		                    <h:outputLabel value="Valor 4: " />
		                    
		                     <p:selectOneMenu effect="drop" value="#{bean.selectedBean.valor1}" style="width: 274px;">  
		    					<f:selectItem itemLabel="Selecione o Valor 1" itemValue="" />  
		    					<f:selectItems value="#{bean.listaValor1SelectItem}"/>  
		                    </p:selectOneMenu>  
						    
		                    <p:selectOneMenu effect="drop" value="#{bean.selectedBean.valor2}" style="width: 274px;">  
		    					<f:selectItem itemLabel="Selecione o Valor 2" itemValue="" />  
		    					<f:selectItems value="#{bean.listaValor2SelectItem}"/>
				    </p:selectOneMenu>

		                    <p:selectOneMenu effect="drop" value="#{bean.selectedBean.valor3}" style="width: 274px;">  
		    					<f:selectItem itemLabel="Selecione o Valor 3" itemValue="" />  
                     			    		<f:selectItems value="#{bean.listaValor3SelectItem}"/>
				    </p:selectOneMenu>

                                        <p:inputTextarea  label="Valor 4: "
	                                                       value="#{bean.selectedBean.valor4}"
	                                                       style="width: 720px;"  	
	                                                       rows="5" 
	                                                       cols="50" 
	                                                       autoResize="false"                                            
	                                                       scrollHeight="6"
	                                                       maxlength="999">
                         	    </p:inputTextarea> 

</p:fieldset>
</p:dialog>[/code]

O Dialog está dentro do mesmo form do dataTable.

No Bean o método visualizar é chamado e vejo que os dados do objeto setado com o <f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" /> estão lá.

O MODAL é Aberto normalmente, porém os dados de nenhum campo é exibido. Alguém aí já passou por isso.

Os dados estão chegando normalmente, esse q é o problema, os dados estão chegando no Bean, o MODAL está sendo aberto, porém o modal não exibe nada, os combos não são setados com o valor do objeto.

Pesquisando, e a linha abaixo está correta:

<f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" />  

Alguma alternativa?

Tente sem o “ajax=true” no commandButton. Se não der, tente com forms separados.

Então, veja o código:

<p:commandButton styleClass="ui-button-text-no-padding" ajax="true" oncomplete="dlgVisualizar.show();" update="dlgVisualizar" action="#{bean.visualizar}" icon="ui-icon-pencil" title="Editar"> <f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" /> </p:commandButton>

O Ajax já etá como true!!

Alêm de colocar em form diferente, alguém tem outra opinião?

Eu disse [color=red]SEM[/color]. Outra solução seria tentar atualizar o proprio form no update.

Fiz o teste e se eu colocar o ajax=“false” o modal nem abre.

Fiz um outro teste Coloquei um id no meu form:

<h:form id="form">

E no commandButton o update no form:

<p:commandButton styleClass="ui-button-text-no-padding" ajax="true" oncomplete="dlgVisualizar.show();" update="form" action="#{bean.visualizar}" icon="ui-icon-pencil" title="Editar"> <f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" /> </p:commandButton>

E nesse caso o Modal também nem abre.
Alguma outra sugestão??

Era pra apagar a configuração do ajax, não passar pra false. Mas enfim…

<p:commandButton styleClass="ui-button-text-no-padding" oncomplete="dlgVisualizar.show();" update="form:dlgVisualizar" action="#{bean.visualizar}" icon="ui-icon-pencil" title="Editar"> <f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" /> </p:commandButton>

Comigo funciona assim. A diferença é que atualizo outro form, não o mesmo form.

Coloquei o seguinte código (sem o ajax):

<p:commandButton styleClass="ui-button-text-no-padding" oncomplete="dlgVisualizar.show();" update="form:dlgVisualizar" action="#{bean.visualizar}" icon="ui-icon-pencil" title="Editar"> <f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" /> </p:commandButton>

Porém sem sucesso!!!

Mais alguma sugestão?

Me parece que o Modal não está pegando as informações que são passados com o:

<f:setPropertyActionListener target="#{bean.selectedBean}" value="#{beanTable}" />

=((

Já tentei de tudo, mais alguma opinião?

O problema pode estar no controle, então. Mas sinceramente, se eu fosse você, faria um do zero e ia testando.

Conseguir resolver o problema!!

O Problema é que o <p:dialog estava no mmo form que o commandButton, daí qdo o Form era submitado os campos do <p:dialog iam vazios e nulos.

Com a dica do ErickRAR foi só criar outro form onde o dialog está, ou seja, minha página tem 2 form’s, 1 para o <p:dialog e outro para o dataTable e no update do commandButton: update=“formDialog” que é form onde o dialog está.

Obrigado ErickRAR.

Problema resolvido!!!