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