olá amigos salvadores do GUJ… vcs me ajudam tanto que colocarei no meu projeto, na parte de agradecimento, o nome de vcs… rs
minha duvida agora eh com combobox no flex… na verdade consigo povoar a combo, normal, mas o que quero eh o seguinte… na minha combo Estado, por exemplo, quando selecionar um determinado estado, eu consiga pegar o ID do estado selecionado para depois pegar todas as cidades do estado e povoar uma outra combo…
não estou conseguindo pegar esse parametro, acho q seria o itemIndex, não é? mas quando faço isso, ele da o valor de acordo com a ordem que aparecem na combo… 0,1,2,3… e naum os valores do ID q mando…
mas tudo isso fiz no braço, nada dinamico… mas quero que fique dinamico
então vou postar meus codigos desde a parte java onde crio um list com os estados ateh a chegada dele no flex
[color=red]METODO LISTAR TODOS OS ESTADOS -[/color] farei um select no banco selecionando todos os estados e ordenando pela sigla
public List<Estados> preencherCombo(id int)
{
connection = Conexao.conectar();//chamada do método conectar, faz a conexao com o banco
List<Estados> listaEstados = new ArrayList<Estados>();//instância um objeto do tipo ArrayList
try
{
statement = connection.createStatement(resultset.TYPE_SCROLL_SENSITIVE, resultset.CONCUR_READ_ONLY);
statement.executeQuery("SELECT ID_ESTADO, SIGLA_ESTADO FROM PFC_ESTADO ORDER BY SIGLA_ESTADO");
while(resultset.next())//percorre toda a tabela PFC_Estados
{
Estados estado = new Estados();//instancia um objeto de Estados
estado.setID(resultset.getInt("ID_ESTADO"));
estado.setSigla(resultset.getString("SIGLA_ESTADO"));
listaEstados.add(estado);//adiciona o objeto estado na lista
}
}catch(SQLException erro)
{
JOptionPane.showMessageDialog(null, "Erro ao listar os dados. "+erro);
}
return listaEstados;//retorna uma lista de objetos de Estados
}
[color=red]MÉTODO PARA LISTAR TODAS AS CIDADES DE UM ESTADO[/color] - Quando selecionar o estado, o evento change vai chamar um método que selecionará todas as cidades daquele estado escolhido
public List<Cidades> preencherCombo()
{
connection = Conexao.conectar();//chamada do método conectar, faz a conexao com o banco
List<Cidades> listaCidades = new ArrayList<Cidades>();//instância um objeto do tipo ArrayList
try
{
statement = connection.createStatement(resultset.TYPE_SCROLL_SENSITIVE, resultset.CONCUR_READ_ONLY);
statement.executeQuery("SELECT ID_CIDADE, NOME_CIDADE FROM PFC_CIDADE WHERE IDESTADO_CIDADE="+id+" ORDER BY NOME_CIDADE");
while(resultset.next())
{
Cidades cidade = new Cidades();//instancia um objeto de Cidades
cidade.setID(resultset.getInt("ID_CIDADE"));
cidade.setNome(resultset.getString("NOME_CIDADE"));
listaCidades.add(cidade);////adiciona o objeto cidade na lista
}
}catch(SQLException erro)
{
JOptionPane.showMessageDialog(null, "Erro ao listar itens da combo box. "+erro);
}
return listaCidades;//retorna uma lista de objetos de Cidades
}
[color=red]COMBO NO FLEX[/color] - minhas duas comboBox
<mx:ComboBox id="comboEstados" change="{listarCidades()}"></mx:ComboBox>
<mx:ComboBox id="comboCidades" ></mx:ComboBox>
[color=red]FUNCTIONS QUE SERVIRÁ PARA CHAMAR OS MÉTODOS JAVA E PREENCHER AS COMBO[/color]
[Bindable]
private var estados:ArrayCollection;
private var cidades:ArrayCollection;
//chamo esse metodo para listar todos os estados
public function listaComboEstado():void
{
DAOEstado.listarCombo();
}
//Com o que retorna do java preencho a combo
public function ResultadoListaComboEstado(event:ResultEvent):void
{
estados = event.result as ArrayCollection;
comboEstados.dataProvider = estados;
}
//chamo a funçao para preencher todas as cidades de um determinado estado
//passando o ID do estado escolhido
public function listaComboCidades():void
{
//acho q o parametro ficaria assim, para passar para o listarComboCidades
DAOCidades.listarCombo(comboEstado.selectedIndex);
}
public function ResultadoListaComboCidade(event:ResultEvent):void
{
cidades = event.result as ArrayCollection;
comboCidades.dataProvider = cidades;
}
Amigos, se puderem me ajudar, agradecerei muito
Abraços