Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

KamiK4Z3

ComboBox - Como definir label e value juntos?

Recommended Posts

Boa tarde pessoal!

Estou com uma questão que aparentemente seria fácil de resolver, mas não é bem assim.

 

Tenho uma sessão de cadastro na minha aplicação que necessita trabalhar com 3 ComboBox aninhadas.

Curso -> Módulo -> Aula

 

Hoje eu consigo fazer a aplicação passar as informações corretamente para o banco de dados, mas vendo daqui à alguns poucos meses isso já não será possível, já que determinados Módulos possuem Cursos distintos, e a mesma coisa acontece para as Aulas.

A questão é a seguinte: eu faço o dataProvider dessas ComboBox utilizando HTTPService e só consigo definir a Label dentro da ComboBox, mas precisava além da Label, definir o valor de cada item da ComboBox utilizando de informações vindas do resultado do HTTPService (XML). Por exemplo:

 

Cursos:

Label: Curso 1 - Value: 1

Label: Curso 2 - Value: 4

 

O XML retorna da seguinte forma:

<Cursos>

<id>1</id>

<nome>Curso 1</nome>

<id>4</id>

<nome>Curso 2</nome>

</Cursos>

 

Faço o DataProvider da seguinte forma:

lista_cursos = cursos.lastResult.Cursos.nome;

 

E na ComboBox:

<mx:ComboBox id="Cursos" dataProvider="{lista_cursos}"/>

 

Alguém tem alguma sugestão, alternativa ou idéia?

 

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Tchê, pelo que pude entender, "Aula" depende de "Modulo" que depende de "Curso", to certo?

Se sim, voce poderia preencher os combos "dependentes" após a seleção de um combo "mestre".

 

Tipo, no change do lista_curso, busca os dados para lista_modulo, e assim sucessivamente.

 

Te ajuda?

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é amigo, um depende do outro sim, mas isso tudo já está sendo feito, consigo fazer cada um puxar sua respectiva lista.

O problem está na hora de armazenar no BD, pois preciso definir exatamente o ID de cada um que ficaria armazenado no Combo.data, e não o selectedIndex, selectedLabel ou selectedItem.

 

Eu estou testando bastante coisa aqui e consegui retornar, mas ainda não está certo.

 

Defini:

 

Combo.data = cursos.lastResult.Cursos.id;
Cursos.selectedIndex = 0;

 

E também já defini o selectedIndex da combo, pois quando carregar tudo ele já tem que aparecer com as informações vindas do primeiro registro, ou seja, Index = 0.

 

Depois, quando é chamada a função para filtrar o Módulo é coletado o selectedIndex da Combobox e armazenado o ID do registro em uma variável Bindada:

 

sel_curso = Cursos.selectedIndex;
cur_selected = Cursos.data[sel_curso];

 

De cara ele não consegue entender que já está "selecionado" o Index zero da Combobox e retorna um erro, mas depois que é selecionado qualquer item os ID's já são retornados normalmente.

Eu vou testar agora fazer essa coleta do ID apenas na hora de chamar o outro HTTPService que faz o cadastro no BD, vamos ver no que vai dar.

Deixo vocês informados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tchê, vo dar um exemplo de como faria:

 

Tenho meu combo aqui:

<mx:ComboBox x="612" y="10" id="combo_curso" labelField="nome" width="116"></mx:ComboBox>

 

Aqui alimento ele com um objeto vindo da consulta:

combo_curso.dataProvider= colService.busca_curso.lastResult;

 

E assim pego o valor selecionado e envio para cadastro:

dados.curso = combo_desenvolvimento.selectedItem.cod_curso;
cursoService.salva_curso.send(dados);

 

veja aí se te ajuda.

 

abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.