Atualizar um Dialog no jsf 2 usando primefaces

2 respostas
Tiago_Casanova
Boa noite estou com o seguinte problema, tenho uma datatable que lista todas as cidades do banco de dados, dai criei um commandButton chamado alterar que vai chamar me manegedBean que ira popular a cidade selecionada. Estou com problema na hora de mostrar os dados da cidade selecionada no Dialog, o metodo selectById me retorna os dados da cidade selecionada, la no Sysout eu consigo pegar os dados, mas quando jogo esses dados no Dialog dai sempre aparece o mesmo em dependente de qual cidade eu escolher. A baixo vai o código.... Meu metodo
public void alterar(ActionEvent event) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		System.out.println("Entrando no parametro remover "+cidade.getDescricao());
		UIComponent link = event.getComponent();
		UIParameter param =  (UIParameter) link.findComponent("idParaAlterar");
		int id = (Integer) param.getValue();
	
		System.out.println("Codigo "+ id);
		
		Cidade cidPesq = dao.selectById(sessao, id);
		cidade.setId(cidPesq.getId());
		cidade.setDescricao(cidPesq.getDescricao());
		cidade.setEstado(cidPesq.getEstado());
		
		System.out.println("Codigo: "+ cidade.getId()+" Estado: "+cidade.getEstado()+ " Nome: "+cidade.getDescricao());

	}
o arquivo listarCidades.xhtml
<p:dialog widgetVar="editor" id="edit" width="600" header="Editar Cidade" modal="true"  
					 resizable="false" draggable="false">
					
					<h:panelGrid columns="1" id="editorPainel">
							<h:panelGrid columns="2">
								 <h:outputText  value="Descricao:"  />
                   				 <p:inputText id="descricao" value="#{cidadeBean.cidade.descricao}" required="true"
                   				 								 requiredMessage="Campo Descrição Indefinido!" >
                    				 <f:validateLength minimum="4"  /> 
                    			</p:inputText>
								
								 <h:outputText  value="Estado:"  />
			                     <p:inputText id="estado" value="#{cidadeBean.cidade.estado}" required="true" requiredMessage="Campo Estado Indefinido!" >
			                     	 <f:validateLength minimum="4"/>
			                     </p:inputText>
			                     
								 <p:commandButton value="Editar" actionListener="#{cidadeBean.update}" update="tabela" />
               					 <p:commandButton value="Cancelar"  onclick="editor.hide();return false;" />
							</h:panelGrid>
					</h:panelGrid>
					</p:dialog>       
					
	  	<p:dataTable value="#{cidadeBean.listacidades}" id="tabela" var="cid" paginator="true" rows="8">
		    <p:column headerText="Codigo">
		        <h:outputText value="#{cid.id}" />
		    </p:column>
		    <p:column headerText="Cidade">
		        <h:outputText value="#{cid.descricao}" />
		    </p:column>
		     <p:column headerText="Estado">
		        <h:outputText value="#{cid.estado}" />
		    </p:column>
		     <p:column style="width: 30px">
		        <p:commandButton value="editar" id="editLink" image="ui-icon-wrench" 
		        			actionListener="#{cidadeBean.alterar}" onclick="editor.show()" update="">
		        	<f:param id="idParaAlterar" value="#{cid.id}"/>
		        </p:commandButton>
		    </p:column>
		    
		 
		</p:dataTable>
Se alguem puder me ajudar, ficaria grato.

2 Respostas

Tiago_Casanova

Tentei o dia inteiro, bom com tudo reforcei a minha ideia que o problema esta na tabela no caso ela não atualiza os dados da lista, já tentei limpar a lista e popular novamente, mas também não obtive sucesso.

jweibe

Cara em vez de usar um <f:param/, tenta utilizar um ><f:setPropertyActionListener/>

&lt;p:commandButton value="editar" id="editLink" image="ui-icon-wrench"   
            actionListener="#{cidadeBean.alterar}" onclick="editor.show()" update="editorPainel"&gt;  
      &lt;f:setPropertyActionListener value="#{valorAtributoAki}"  target="#{seuAtributoAki}" /&gt; 
&lt;/p:commandButton&gt;
Criado 24 de junho de 2011
Ultima resposta 25 de jun. de 2011
Respostas 2
Participantes 2