Robson vou dar uma olha mais afundo, mas precisa que ele ja carregasse no campo o valor setado no DTO em twoway databind

Em 09/05/2013 08:10, Robson Mattos escreveu:
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 <mailto:eduardosavo...@yahoo.com.br> <eduardosavo...@yahoo.com.br <mailto: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 <mailto:flexdev@googlegroups.com>
    Para sair da lista, envie um email em branco para
    flexdev-unsubscr...@googlegroups.com
    <mailto: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
    <mailto:flexdev%2bunsubscr...@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.





--
--
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.


Responder a