Da uma olhada em http://lab.kapit.fr/media/demo/klovis/prod/index.html#/AutoComplete:+Filter acho que tem o que vc precisa.
sds, Robson Mattos Em 8 de maio de 2013 23:23, eduardosavo...@yahoo.com.br < eduardosavo...@yahoo.com.br> escreveu: > Estou tentando criar um um componente Dropdownlist que funcione two-way > databind, fiz o componente, mas esta instavel tem hora q ele funciona e tem > hora q não abaixo segue a ideia de uso e o componente. > > Estou enviando para lista pq nao consegui achar nada na net... esta > dificil.. rsrsrsrsrs > > Class User_DTO: > var id:int; > var nome:String; > var status:int; > > // ex: minha array ficaria > private var status:ArrayCollection = new ArrayCollection([{id:"1", > descricao: "aberto"}, {id: "2", descricao: "fechado"}]); > > <components:SDropDownList x=width="260" id="dd_status" > dataProvider="{status}" > keyField="id" > > selectedValue="@{user.status}" > labelField="descricao"/> > > O Componente.... > > package components > { > import flash.events.Event; > > import mx.collections.IList; > import mx.utils.ObjectUtil; > > import spark.components.DropDownList; > > public class SDropDownList extends DropDownList > { > public function SDropDownList() > { > super(); > } > > //Campo que será utilizado na pesquisa dentro do this.dataProvider > private var _keyField:String; > > [Bindable] > public function get keyField():String > { > return _keyField; > } > > public function set keyField(value:String):void > { > _keyField = value; > } > > //Campo usado para realizar o bind com o DTO. > private var _selectedValue:*; > > [Bindable] > // [Bindable("atualiza")] > public function get selectedValue():* > { > return _selectedValue; > } > > public function set selectedValue(value:*):void > { > _selectedValue = getValues(value); > } > > private function getValues(value:*):* > { > if (value == null) > { > selectedIndex = -1; > return; > } > > for each (var obj:Object in dataProvider) > { > if (ObjectUtil.compare(obj[keyField], value) == 0) > { > //selectedItem = obj; > selectedIndex = dataProvider.getItemIndex(obj); > return obj[keyField]; > } > } > } > > override public function set dataProvider(value:IList):void > { > super.dataProvider = value; > > if (selectedValue != null) > selectedValue = getValues(selectedItem[keyField]); > } > } > } > > -- > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com > Para sair da lista, envie um email em branco para > flexdev-unsubscr...@googlegroups.com > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > --- > Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" > dos Grupos do Google. > Para cancelar a inscrição neste grupo e parar de receber seus e-mails, > envie um e-mail para flexdev+unsubscr...@googlegroups.com. > Para obter mais opções, acesse https://groups.google.com/groups/opt_out. > > > -- Robson Mattos -- -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev --- Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos Grupos do Google. Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para flexdev+unsubscr...@googlegroups.com. Para obter mais opções, acesse https://groups.google.com/groups/opt_out.