Acho que nesse seu caso o Repeater não seria a melhor solução...., pois se a
lista for muito grande, irá criar vários componentes na tela
desnecessariamente...

Eu faria o seguinte:

No creationComplete chamaria o método abaixo, e deixaria apenas o box vazio
para adicionar os componetes

            private function onCreationComplete():void
            {
                for each(var obj:Object in array)
                   {
                    var display:DisplayObject = factory(obj);
                    if(display != null){
                        box.addChild(display);
                    }
                }
            }

            private function factory(obj:Object):DisplayObject
            {
                if(obj.nome == "Sérgio Fantin"){
                    var label:Label = new Label();
                    label.text = obj.nome;
                    return label;
                }
               //Implementar o resto dos componentes
                return null;
            }




Em 7 de junho de 2010 17:49, Sérgio Fantin
<[email protected]>escreveu:

> Olá pessoal,
>
> gostaria de colocar uma condição dentro do meu mx:repeater, de modo que
> cada item da minha lista tenha um componente diferente, por ex:
> O Sérgio será exibido com um label, o Alex com um input e o Fernando com um
> dataGrid.
>
> Segue:
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="absolute">
>     <mx:Script>
>         <![CDATA[
>             import mx.controls.Label;
>             import mx.collections.ArrayCollection;
>             [Bindable]
>             private var array:ArrayCollection = new ArrayCollection([
>                              {nome : "Sérgio Fantin", apelido : "Serjão",
> cidade : "São Paulo"},
>                              {nome : "Alex Ferraresi", apelido :
> "Velhinho", cidade : "São Caetano"},
>                              {nome : "Fernando Boaglio", apelido :
> "Boaglio", cidade : "São Paulo"}]);
>
>         ]]>
>     </mx:Script>
>     <mx:VBox id="box">
>         <mx:Repeater id="myRepeater" dataProvider="{array}">
>             <mx:Label text="{myRepeater.currentItem.nome}"/>
>
>             <mx:TextInput />
>
>             <mx:DataGrid dataProvider="{array}">
>                 <mx:columns>
>                     <mx:DataGridColumn headerText="Nome "
> dataField="nome"/>
>                     <mx:DataGridColumn headerText="Apelido "
> dataField="apelido"/>
>                     <mx:DataGridColumn headerText="Cidade "
> dataField="cidade"/>
>                 </mx:columns>
>             </mx:DataGrid>
>         </mx:Repeater>
>     </mx:VBox>
> </mx:Application>
>
>
> --
> Sérgio Fantin
> http://serjaum.wordpress.com
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
Leonardo Cabral
Tel. +5511 2224.6750
D-Click Web & Mobile Solutions
[email protected]
www.dclick.com.br/blog
www.dclick.com.br

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a