Evento não está sendo executado no selectOneMenu[RESOLVIDO]

2 respostas
brunorota

Boa noite galera

Tudo bom?

Estou com um problema em lançar um evento quando um item do combo é selecionado

O método não está sendo executado

Segue abaixo o código

<h:selectOneMenu id="combo-estado" value="#{clienteMB.estadoSelect}"
	    								converter="estadoConverter"
	    								valueChangeListener="#{clienteMB.atualizaCidades}">
	    								<f:selectItems value="#{clienteMB.estados}" 
	    							 		var="estado"  
                   					 		itemLabel="#{estado.nome}"  
                   				     		itemValue="#{estado}" />
	    							</h:selectOneMenu>

Meu ManagedBean

public void atualizaCidades(ValueChangeEvent event){
		if (event.getNewValue() != event.getOldValue()) {  
			System.out.println("É EXECUTADO");
	    } 
	}

Não acontece erro algum porém o comando é executado apenas quando eu clico no commandButton

Alguém sabe oq está acontecendo?

Eu preciso carregar outro combo através desse combo

Se alguem puder ajudar

Agradeço

Att.

2 Respostas

brunorota

Galera to evoluindo aqui

Eu vi que tem ajax nativo

Utilizei o seguinte código

<h:selectOneMenu id="combo-estado" value="#{clienteMB.idEstado}"
	    								valueChangeListener="#{clienteMB.atualizaCidades}">
	    								<f:selectItems value="#{clienteMB.estados}" 
	    							 		var="estado"  
                   					 		itemLabel="#{estado.nome}"  
                   				     		itemValue="#{estado.id}" />
                   				     	<f:ajax event="change" render="combo-cidade" />
	    							</h:selectOneMenu>

meu ManagedBean

public void atualizaCidades(ValueChangeEvent event){
		if (event.getNewValue() != event.getOldValue()) {  
			
			
			
	    } 
	}

O problema é que quando o método atualizaCidades é executado eu ainda não tenho o ID do objeto selecionado, ele sempre vem com ID atrasado.

Então eu não consigo fazer a pesquisa, tem alguma maneira pra eu conseguir capturar o id do objeto antes que esse método seje executado?

Att.

brunorota

Opaa galerinhaa

Consegui resolver o problema

Segue abaixo o código

<h:selectOneMenu id="combo-estado" value="#{clienteMB.idEstado}">
	    								<f:ajax event="change" render="combo-cidade" listener="#{clienteMB.atualizaCidades}" />
	    								<f:selectItems value="#{clienteMB.estados}" 
	    							 		var="estado"  
                   					 		itemLabel="#{estado.nome}"  
                   				     		itemValue="#{estado.id}" />
	    							</h:selectOneMenu>

ManagedBean

public void atualizaCidades(AjaxBehaviorEvent event){
			
			cidades = cidadeBS.findByEstado(idEstado);
	}

Valeww até a próxima

Criado 14 de setembro de 2011
Ultima resposta 14 de set. de 2011
Respostas 2
Participantes 1