Acho que é por aí. Talvez você precise depois de algo chamado outterdocument para acessar componentes na classe principal.
On 23 out, 10:37, Bruno Carneiro <[email protected]> wrote: > Agora entendi! > > Acho importante detalhar meu problema, porque pode ser o mesmo > problema de outras pessoas. > > A minha dificuldade se dava porque eu tinha UM MODELO MENTAR ERRADO do > funcionamento dos itemrenderers > > O que eu pensava: > > Os dados, no datagrid, passam por esse fluxo: > > DataProvider -> DataGridColumn -> ItemRenderer > > Nesse ponto: DataProvider -> DataGridColumn eu passo os dados através > da propriedade dataField do DataGridColumn. E essa propriedade só me > permite associar um campo do DataProvider. > > Para eu passar os campos para o ItemRenderer, eu preciso primeiro, > passá-los para o DataGridColumn ( devido a ordem do fluxo ). E para eu > passar vários campos para o ItemRenderer, eu teria que passar vários > campos para o DataGridColumn... o que eu não tenho a menor idéia de > como fazer. > > MAS ISSO ESTÁ INCOMPLETO! > > O que eu falei acima é apenas uma forma de trabalhar com item > renderers. A outra forma é a seguinte: > > Quando o List Component usa um item renderer ele preenche uma > propriedade do item renderer chamada data. No caso do datagrid essa > propriedade recebe O ITEM COMLETO DO DATAPROVIDER. Então, no meu item > renderer, através dessa propriedade, eu tenho acesso a qualquer campo > do item. > > Tem um código exatamente sobre isso nessa página > > Creating a complex inline item renderer or item > editorhttp://livedocs.adobe.com/flex/3/html/help.html?content=cellrenderer_... > > <mx:DataGridColumn dataField="Album"> > <mx:itemRenderer> > <mx:Component> > <mx:VBox> > <mx:Text id="albumName" > width="100%" text="{data.Album}"/> > <mx:Image id="albumImage" > height="45" source="{data.Cover}"/ > > </mx:VBox> > </mx:Component> > </mx:itemRenderer> > </mx:DataGridColumn> > > On 22 out, 16:04, thiagoalgo <[email protected]> wrote: > > > Você precisa criar uma classe que herda de VBox e, talvez, ainda > > implementar a interface > > mx.controls.listClasses.IDropInListItemRenderer para receber os dados > > dentro dessa classe. Dá uma pesquisada aí na internet que você > > encontra exemplos. > > > On 22 out, 14:12, Bruno Carneiro <[email protected]> wrote: > > > > Mas Thiago, como eu associaria 3 campos à mesma coluna? > > > > On 22 out, 13:10, thiagoalgo <[email protected]> wrote: > > > > > Cara, vendo essa imagem que você mandou, dá para resolver isso de > > > > maneira muito simples usando item renderer. Se você extender um VBox > > > > para usar como item renderer com certeza já consegue resolver seu > > > > problema. > > > > > On 22 out, 11:19, Bruno Carneiro <[email protected]> wrote: > > > > > > Marcelo, olhei o link realmente interessante. Não é o que eu preciso, > > > > > talvez possa ser adaptado. Ainda não sei como faria... > > > > > > Vou tentar explicar melhor o que eu quero. > > > > > > Eu tenho um datagrid, que me fornece uma lista de objetos do meu > > > > > dprovider. > > > > > > Cada coluna do meu dgrid está associada a um campo do meu > > > > > dataprovider. Isso nós fazemos através da propriedade datafield. > > > > > > Agora, imagine que eu quero um datagrid diferente. Quero associar a > > > > > uma ÚNICA COLUNA MAIS DE UM CAMPO do meu dataprovider. > > > > > > Porque isso? Pq eu quero no mesmo campo, mostrar vários dados dipostos > > > > > em linhas. Talvez alguém esteja se perguntando: Porque você não cria > > > > > mais colunas e mostra esses dados nas colunas? Porque eu não tenho > > > > > espaço na largura, mas na altura tenho espaço sobrando. > > > > > > Então, no link que você postou a idéia é usar outro datagrid como > > > > > itemrenderer, neste caso não é exatamente o que eu quero pois se eu > > > > > colocar ali outro grid cada linha será um item diferente. Eu quero > > > > > mostrar dados DO MESMO ITEM. > > > > > > Resumindo, de alguma forma eu tenho que bolar uma maneira de na mesma > > > > > coluna do datagrid eu mostrar dados de mais de um campo. > > > > > > Como eu ainda não comecei a implementar, ainda não tenho muitas > > > > > idéias... estou a procura de sugestões. > > > > > > Ficou mais claro? > > > > > > Eu fiz um print da imagem > > > > > >http://yfrog.com/0yexemplogg > > > > > > Olha como em uma vizualização a coluna só mostra um campo. > > > > > Em outra vizualização ela mostra 3 campos. > > > > > > Depois de escrever tudo isso, pensei no seguinte: No meu model > > > > > ( ArrayCollection ) eu crio um outro campo "virtual". Esse campo não > > > > > pertence a tabela do banco de dados, é um campo que eu vou criar > > > > > dentro do Flex após receber os items do banco. Esse novo campo vai ser > > > > > a concatenação dos campos que eu quero mostrar. Acho que dá certo. > > > > > > Se não tiver alguma forma melhor de fazer, vai ser assim. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
