Atualizar Componente - Não está funcionando

Galera, seguinte. Possuo duas opções, uma para inserir o tipo de telefone e outra para inserir o tipo de e-mail.

Ambas inserem corretamente no banco de dados, porém, a do telefone já atualiza o selectOneMenu mas a da email não, somente quando atualiza a página.

Acredito que seja o update que esteja errado, porém, é o mesmo para ambos codigos, eles são basicamente iguais, a unica coisa que muda é o bean deles.

[code]<p:column style=“border: 0px; float: left;”>
<p:outputLabel>Tipo</p:outputLabel>

					        &lt;p:selectOneMenu value="#{EmailService.emailTipo.id}" &gt; 
					            &lt;f:selectItems value="#{EmailTipoService.emailsTipo}" /&gt;   
					        &lt;/p:selectOneMenu&gt;
					        
					        &lt;p:commandButton id="showDialogEmail" type="button" icon="ui-icon-circle-plus"  onclick="dialogEmail.show()" style="left: 10px; font-size: 12px !important; "/&gt;
							
							&lt;h:form id="formEmail" &gt; 
					        &lt;p:dialog header="Tipo de Email" widgetVar="dialogEmail" resizable="false" &gt;
					        	  
							        &lt;h:panelGrid columns="2" style="margin-bottom:10px" &gt;  
							            &lt;h:outputLabel for="tipoEmail" value="Tipo: " /&gt;  
							            &lt;p:inputText id="tipoEmail" value="#{EmailTipoService.emailTipo.tipo}"/&gt;  
							        &lt;/h:panelGrid&gt;  
							  		
							        &lt;p:commandButton value="Gravar" action="#{EmailTipoService.gravarEmailTipo}" process="@form" update=":accordioncontatos" oncomplete="dialogEmail.hide()" /&gt;
			              
						    	
							&lt;/p:dialog&gt;
							&lt;/h:form&gt;
				    	&lt;/p:column&gt;[/code]

[code]<p:column style=“border: 0px;” >
<p:outputLabel>Tipo</p:outputLabel>

<p:selectOneMenu value="#{TelefoneService.telefonetipo.id}" >
<f:selectItems value="#{TelefoneTipoService.telefonesTipo}" />
</p:selectOneMenu>

					        &lt;p:commandButton id="showDialogTelefone" type="button" icon="ui-icon-circle-plus"  onclick="dialogTelefone.show()" style="left: 10px; font-size: 12px !important; "/&gt;

					        &lt;p:dialog header="Tipo de Telefone" widgetVar="dialogTelefone" resizable="false"&gt;
					        	&lt;h:form id="formtipotelefone"&gt;   
						        &lt;h:panelGrid columns="2" style="margin-bottom:10px" &gt;  
						            &lt;h:outputLabel for="tipo" value="Tipo: " /&gt;  
						            &lt;p:inputText id="tipo" value="#{TelefoneTipoService.telefoneTipo.tipo}" immediate="true" /&gt;  
						        &lt;/h:panelGrid&gt;  
						  
						        &lt;p:commandButton value="Gravar" action="#{TelefoneTipoService.gravarTipoTelefone}" process="@form"  update=":accordioncontatos" oncomplete="dialogTelefone.hide()" /&gt;      
						    	&lt;/h:form&gt;
							&lt;/p:dialog&gt;
							  
				    	&lt;/p:column&gt;[/code]

Não entendi muito bem essa questão do update. Nos exemplos do primefaces, ele não utiliza ‘:’. Nesse caso, se eu tirar o ‘:’ dá erro. Alguns casos, é necessario colocar a sequencia :primeiro:segundo:terceiro até funcionar. Eu estou conseguindo fazer funciona no chute, mas pra mim que seria apenas colocar o id e pronto.

Procurei uma explicação a respeito mas não encontrei ainda. Caso alguém tiver um link, ou quiser explicar, agradeço.

A atualização deve ser feita pelo id mesmo,

Agora, eu costumo utilizar actionListener, não action, parace que o primefaces se dá melhor com ele, tente sempre com actionListener, se tudo falhar, use o action.

Outra coisa que eu notei é que num dialog o form está envolvendo o próprio dialog e no outro apenas os campos, pode ser esse o seu problema.

Qualquer coisa dá um grito de novo, :wink: