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?
Precisei fazer isso e não vi uma forma nativa de fazê-lo, para isso eu criei o seguinte método:
[code] /***
*
* 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.
*
* Só 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;
}[/code]
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.
[quote=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?[/quote]