Carregar combobox no event onClick ! [Resolvido]

1 resposta
jcmird

Olá Galera,
estou com um problema e não encontro a solução =(.

Tenho uma tela de cadastro e os combos deverão ser carregados quando o usuario clicar no combo. Implementei a solução abaixo, mas como renderizo o combo acabo perdendo ação e nao consigo selecionar o valor.

Pagina xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:jsp="http://java.sun.com/JSP/Page"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich"
	template="/template/template.xhtml">

	<a4j:keepAlive beanName="testeComboBean" />

	<ui:param name="backingBean" value="#{testeComboBean}" />
	<ui:define name="title">#{msgBundle[titulo.index]}</ui:define>


	<ui:define name="body">
		<a4j:form id="form1">
			<label>Combo JSF</label>
			<h:panelGrid id="widget1" columns="1" cellspacing="0">
				<h:selectOneMenu value="#{testeComboBean.carro}" id="comboCarro">
					<f:selectItem itemValue="" itemLabel="Selecione"></f:selectItem>
					<f:selectItems value="#{testeComboBean.listaCarro}"></f:selectItems>
					<a4j:support event="onclick"
						action="#{testeComboBean.carregaCombo}" reRender="comboCarro" />
				</h:selectOneMenu>				
			</h:panelGrid>			
		</a4j:form>
	</ui:define>

</ui:composition>

Bean

public class TesteComboBean extends AbstractBaseBean {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private List<SelectItem> listaCarro = new ArrayList<SelectItem>();
	private String carro;

	public void carregaCombo() {
		listaCarro.add(new SelectItem("1", "Corsa"));
		listaCarro.add(new SelectItem("2", "Gol"));
		listaCarro.add(new SelectItem("3", "Variant"));
		listaCarro.add(new SelectItem("4", "Fusca"));
		listaCarro.add(new SelectItem("5", "Fiat 147"));
		listaCarro.add(new SelectItem("6", "Celta"));		
	}

	
	
	public List<SelectItem> getListaCarro() {
		return listaCarro;
	}

	public void setListaCarro(List<SelectItem> listaCarro) {
		this.listaCarro = listaCarro;
	}

	public String getCarro() {
		return carro;
	}

	public void setCarro(String carro) {
		this.carro = carro;
	}

Galera já agradeço pela atenção =)

1 Resposta

jcmird

Galera!!! Lá vai solução caso alguém passe pela mesma dificuldade, meio POG mas atendeu a minha necessidade… coloquei uma EL no rendered do a4j:support, verificando se lista é vazia ou não abraços.

Abs turma =).

Criado 4 de dezembro de 2009
Ultima resposta 4 de dez. de 2009
Respostas 1
Participantes 1