Isso não funciona: dataFied="endereco.logradouro"
Não pode usar "nesting" ali pq vc deve passar uma string (que corresponde ao
nome do atributo a ser representado ali.)

Se quer saber a solução rápida para isso, tem tres caminhos:
- usar labelFunctions
- usar itemRenderers.
- crie um getter no objeto Endereço que retorne a descrição do logradouro
diretamente, daí vc usa o getter no datafield.
(esse ultimo é mais rápido, recomendado e menos intrusivo:
http://forum.flexbrasil.com.br/viewtopic.php?f=8&t=455&p=1648&hilit=labelFunction#p1642
)


...

...

...

Agora, se vc continuou lendo até aqui é pq vc quer saber o motivo de usar
isso (isso é bom, parabéns =D... a maioria pegam as soluções e depois nem
sabem o porquê de usá-las, mas agora vc saberá o porquê.)

Tenha um pouco de paciência e leia esse link onde comento sobre porquê do
nesting não funcionar:
http://groups.google.com/group/flexdev/browse_thread/thread/8b381be6ea847361/d71492b5775604cb?hl=pt-BR&lnk=gst&q=1404#d71492b5775604cb

Veja a dúvida do Daniel Schimitz, em seguida leia as respostas... a minha
onde explico o problema, e a ultima do Beck onde ele propoe uma solução.


Bons estudos!!




2009/6/3 Alberto Magno <[email protected]>

> Bom dia galera, seguinte tenho um arrayCollection que possui objetos que
> tem outros objetos dentro dele. No meu datagrid em uma das colunas tenho que
> pegar o valor desse outro objeto, coisa do tipo: pessoa.endereco.logradouro.
> Tive que criar um componente que extendesse de DataGridColumn e sobrescrevi
> o método itemToLabel, até ai funcionou beleza, mas quando clico no cabeçalho
> da coluna pra ele ordenar da o seguinte erro.
> Find criteria must contain at least one sort field value.
> Já setei o método sortCompareFunction, mais ele não chega a chamar o mesmo,
> o problema esta quando o datagrid vai pegar o atributo do objeto principal,
> como o objeto não tem o atributo endereco.logradouro da esse erro.
>
> EX:
> class Pessoa{
>        public var nome:String;
>        public var endereco:Endereco;
> }
>
> class Endereco{
>        public var logradouro:String;
> }
>
> <mx:DataGrid dataProvider={pessoas}>
>     <mx:columns>
>          <mx:DataGridColumn dataFied="nome" />  <!-- Funciona -->
>          <mx:DataGridColumnCustom dataFied="endereco.logradouro" /> <!--
> Não Funciona na ordenação -->
>      </mx:columns>
> </mx:DataGrid>
>
> Alguém já passou por esse erro?
>
>
> --
> Alberto Magno Xavier Soares
> Bacharel em Sistemas de Informação
> Software Engineer - Digivox - João Pessoa - PB
> Jabber : [email protected]
> Skype: alberto.mxs
>
> >
>


-- 
Mário Júnior
Programador Java / Adobe Flex
http://blog.mariojunior.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
-~----------~----~----~----~------~----~------~--~---

Responder a