selectedItem do ComboBox

2 respostas
j0nny

Galera, alguém sabe se eu consigo setar o item selecionado no combobox a partir de um objeto?

Por exemplo:
Tenho o dataProvider do ComboBox com os clientes, e seto um cliente existente no dataprovider como selectedItem do combo, só que, a instância é diferente, porém os dados são iguais. Não teria como eu sobrescrever algum método estilo o equals() do java para pode setar o item?

2 Respostas

xdraculax

Cara, não!

Precisei fazer isso e não vi uma forma nativa de fazê-lo, para isso eu criei o seguinte método:

/***
		 * 
		 * Quando você tenta selecionar um item de um ComboBox através do selectedItem = "string qualquer",
		 * o Flex não tem como comparar sua string com o objeto da collection, então, ele diz que não encontra.
		 * O que tem que se fazer é encontrar o objeto desejado através de uma propriedade dele; e um valor que você
		 * especificar.
		 * 
		 *  deve ser usado com collections que tenha COLEÇÕES DE ENTIDADES como DataProvider's, e as entidades
		 * devem ser DYNAMIC
		 ***/ 
		public static function findObjectInCombo(colecao:ComboBox, valor:Object):Object{
						
			if(colecao == null || (valor == null || valor == "")){
				return null;
			}
			
			var resposta:Object;
			for each(var o:Object in colecao.dataProvider){
				if(o[colecao.labelField] == valor){
					resposta = o;break;
				}
			}
			return resposta;
		}

O objetivo é encontrar o objeto na BomboBox (você pode adaptá-lo para outro tipo de componente) e compará-lo através de uma propriedade e um valor; ou seja, me encontre o objeto na collection que tenha essa propriedade com esse valor.

Um detalhe é que o tal objeto tem que ser dynamic.

paulo.ps84

j0nny:
Galera, alguém sabe se eu consigo setar o item selecionado no combobox a partir de um objeto?

Por exemplo:
Tenho o dataProvider do ComboBox com os clientes, e seto um cliente existente no dataprovider como selectedItem do combo, só que, a instância é diferente, porém os dados são iguais. Não teria como eu sobrescrever algum método estilo o equals() do java para pode setar o item?

Procurei por alguns dias e finalmente encontrei ! Tente utilizar este componente, é apenas uma alteração no combo original resolveu o meu problema !
Segue o link:
http://flashflex.com/flex-examples-binding-a-value-to-a-combobox/

Criado 11 de abril de 2011
Ultima resposta 15 de abr. de 2011
Respostas 2
Participantes 3