Fórum combos anihados urgente #415191
09/04/2012
0
public List<SelectItem> getPoloEmpresaSelect() {
if (this.codigoPolo > 0){
if(this.acidenteSelecionado.getPolo().getCodigoPolo() != null){
this.poloEmpresaSelect = new ArrayList<SelectItem>();
List<Empresa> empresa = (List<Empresa>) this.acidenteSelecionado.getPolo().getEmpresaList();
SelectItem item = null;
for (Empresa emp : empresa ){
item = new SelectItem(emp,emp.getNomeFantasia());
item.setEscape(false);
this.poloEmpresaSelect.add(item);
}
// aqui eu tento posicionar o segundo combo de acordo com que foi inserido na tabela, mas não deu.
if(this.codigoEmpresa != 0){
for(SelectItem itens : this.poloEmpresaSelect){
System.out.println(valor da empresa = + itens.getValue().toString());
if (itens.getValue().equals(this.acidenteSelecionado.getEmpresa().getCodigoEmpresa().toString())){
break;
}
}
}
}
}
this.codigoPolo++;
return this.poloEmpresaSelect;
}
Jose Boas
Curtir tópico
+ 0Posts
10/04/2012
Davi Costa
att Davi
Gostei + 0
10/04/2012
Jose Boas
Gostei + 0
10/04/2012
Jose Boas
for(SelectItem itens : this.poloEmpresaSelect){
//while (it.hasNext()){
//SelectItem itens = it.next();
System.out.println(valor da empresa = + this.acidenteSelecionado.getEmpresa().getCodigoEmpresa());
System.out.println(valor da real = + itens.getLabel()) ;
//if (this.acidenteSelecionado.getEmpresa().getCodigoEmpresa().equals(itens.getValue())) {
if (itens.getLabel().equals(this.acidenteSelecionado.getEmpresa().getNomeFantasia())) {
System.out.println(entrei = + itens.getLabel());
break;
}
}
}
Gostei + 0
10/04/2012
Davi Costa
é bem simples, vc verifica se o pai tá diferente de nulo se tiver vc altera os valores da segunda combo conforme o pai, só isso
att Davi
Gostei + 0
10/04/2012
Jose Boas
Ex: Eu tenho no primeiro combo polo1 com a empresa1 e empresa2 e o segundo polo no caso polo2 com a empresa1.
Quando eu clico e eslecione o polo1 é listado no segundo combp a empresa1 e empresa2 . Caso eu selecione o polo2
ei selecione a empresa1. Até aí esta ok, o problrem ´r quando eu vou editar os dados ond todo os combos são atualizados com seus valores gravados no banco, mas o combo da empresa não são;
veja como esta o xhtml.
<p:selectOneMenu id=polo value=#{planilhaBean.acidenteSelecionado.polo} style=width:180px>
<f:selectItem itemLabel=Selecione o Polo itemValue=/>
<f:selectItems value=#{poloBean.poloSelect}/>
<p:ajax onchange=submit() update=empresa actionListener=#{planilhaBean.trocaEmpresaPolo} />
</p:selectOneMenu>
<p:selectOneMenu id=empresa value=#{planilhaBean.acidenteSelecionado.empresa} style=width:180px>
<f:selectItem itemLabel=Selecione a Empresa itemValue=/>
<f:selectItems value=#{planilhaBean.poloEmpresaSelect} var=emp itemLabel=#{emp.nomeFantasia} itemValue=#{emp.codigoEmpresa}/>
</p:selectOneMenu>
Gostei + 0
10/04/2012
Jose Boas
Gostei + 0
10/04/2012
Jose Boas
Gostei + 0
12/04/2012
Jose Boas
Ei criei uma propriedade chamada codigoEmpresa onde eu utilizao para renderizar os controles. De inicio ela vale 0 então habilito o combo e desabilito o inputtext.Quando eu clico em alterar(caso queira alterar a empresa, que ja esta listada de acordo com o polo) eu desabilito o combo e habilito o inputtext, aí eu consigo jogar o valor, mas ao habiliat o inputtext eu habilito junto um commandtlink que diz editar empresa e ao clicar eu atualizo novamente a variavel voltando para o combo e altera caso seja necessário.
Vaje o codigo do bean
public void atualizaVariavelr(){
this.codigoEmpresa = 0;
}
xhtml que muda os controles
<h:outputLabel rendered=#{planilhaBean.codigoEmpresa == 0} value=Empresa for=empresa/>
<p:commandLink rendered=#{planilhaBean.codigoEmpresa == 1} value=Editar Empresa actionListener=#{planilhaBean.atualizaVariavelr} title=Editar Empresa ajax=false>
<p:ajax event=click update=gempresa1 gempresa2 process=@this/>
</p:commandLink>
agora os controles que serão mudados
<h:panelGroup id=gempresa1 rendered=#{planilhaBean.codigoEmpresa==0}>
<p:selectOneMenu id=empresa value=#{planilhaBean.acidenteSelecionado.empresa} style=width:180px>
<f:selectItem itemLabel=Selecione a Empresa itemValue=/>
<f:selectItems value=#{planilhaBean.poloEmpresaSelect} var=emp itemLabel=#{emp.nomeFantasia} itemValue=#{emp.codigoEmpresa}/>
</p:selectOneMenu>
</h:panelGroup>
<h:panelGroup id=gempresa2 rendered=#{planilhaBean.codigoEmpresa==1}>
<p:inputText readonly=true id=empresa1 value=#{planilhaBean.acidenteSelecionado.empresa.nomeFantasia} maxlength=10 style=width:200/>
</h:panelGroup>
Gostei + 0
14/04/2012
Dyego Carmo
Este seu alinhamento pode ter tmb carga dinamica utilizando ajax caso queira usar JSF 2 :)
Gostei + 0
18/04/2012
Paulo Vinck
Tive problemas com isso também, então pesquisando por ai achei este exemplo.
http://serjaum.wordpress.com/2009/08/28/jsf-tutorial-combos-aninhados-estadoscidades/
a partir deste consegui resolver meus problemas...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)