Opa, obrigadão Fábio. Eu já tinha tentado isso. Passa do erro mas ocorrem
outros erros à frente.
O objeto que funciona como dataprovider do datagrid é um ArrayCollection,
porém dentro dele há um array, que não é collection.
Por causa desse array estamos usando o itemUpdated, que estava ocasionando
erro quando o datagrid estava ordenado.
Acabei conseguindo resolver tirando todos os itemUpdated ( não entendi
porque ele gera o erro...) e substitui quando ele era necessário por
datagrid.dataprovider.refresh.
Funcionou legal.

Obrigado a todos pela ajuda :D

Em 17 de maio de 2010 13:32, Fábio Goll <fabiog...@gmail.com> escreveu:

> Esse registro é uma coleção?
>
> Faça assim:
>
> if( itemGrid != null && itemGrid.registro != null )
>     return itemGrid.registro[0].nome;
> else
>     return "";
>
> 2010/5/17 David Lira <david.lira...@gmail.com>
>
>> Olá senhores,
>>
>> Consegui delimitar de forma mais adequada meu problema.
>> Consiste no seguinte.
>> Tenho um arrayCollection  bindable que preenche um datagrid.
>> Até ai tudo ok.
>>
>> Anteriormente eu estava tendo problemas ao inserir e remover um item.
>> Percebi que após cada ação dessas era feita uma chamada ao método
>> itemUpdated do meu arrayCollection  para notificar o datagrid que o
>> datasource havia mudado. Este procedimento funciona, porém se eu der um sort
>> no datagrid e executar alguma ação dessas, ocorre erro. Ou seja, o
>> itemUpdated + o sort no datagrid gera erro.
>> Dei uma olhada na documentação e percebi que caso eu realize operações de
>> inserção e remoção no arrayCollection, não é necessário notificar o
>> datagrid. Ele atualiza automaticamente. Porém caso eu faça uma alteração no
>> objeto contido no arrayCollection essa alteração não é notificada ao
>> datagrid. Caso eu use o itemUpdated  e estiver sort no datagrid o erro volta
>> a ocorrer.
>>
>> Alguém já passou por isso.
>> O erro é esse:
>>
>> TypeError: Error #1009: Não é possível acessar uma propriedade ou um
>> método de uma referência de objeto nula.
>>     at
>> br.com.aspec.flex.contatos.view::UnidFederacaoHandleUI/getFieldNome()[C:\Users\david.lira\workspaces\aspecFlex\contato-modulo\src\main\flex\br\com\aspec\flex\contatos\view\UnidFederacaoHandleUI.as:52]
>>
>> Que aponta para este método:
>>
>>         public function getNome(linha:Object,
>> coluna:DataGridColumn):String
>>         {
>>             var itemGrid:ItemGrid=linha as ItemGrid;
>>             return itemGrid.registro[0].nome;
>>         }
>>
>> Simplificando, o datagrid pede dados para uma coluna vazia, que não está
>> associada a nenhum objeto do dataprovider.
>> Isso só ocorre quando o datagrid está  com sort.
>>
>>
>> Qualquer ajuda é bem vinda.
>> Atenciosamente,
>>
>>
>> Em 14 de maio de 2010 10:59, David Lira <david.lira...@gmail.com>escreveu:
>>
>> Bom dia senhores,
>>>
>>> Estou com um problema e não estou conseguindo resolver.
>>> Tenho um datagrid que tem por datasource um ArrayCollection e uma função
>>> custom de ordenação.
>>>
>>> O datagrid funciona corretamente sem eu pedir a ordenação, porém caso eu
>>> peça a ordenação ( clique no header da coluna ) e depois tente excluir um
>>> item, ocorre um erro de ele tentar acessar campos null de uma linha. O array
>>> collection é preenchido por um remote object.
>>> Pela minha observação,  quando ocorre a exclusão de um item do array
>>> collection e há uma tentativa de preencher  o datagrid , é passado uma linha
>>> null, o que acarreta o problema.  Mas essa linha só é passada no caso de o
>>> datagrid estar ordenado.
>>>
>>> Alguém já passou por algo parecido ?
>>>
>>> Sei que a dúvida não está muito  bem redigida. Daqui a pouco tento
>>> explicar melhor o problema.
>>> Desde já agradeço quaisquer ajudas :D
>>> --
>>> Atenciosamente,
>>> ----------------------------
>>> João David de Lira
>>> Fortaleza-Ceará
>>> ----------------------------
>>>
>>
>>
>>
>> --
>> Atenciosamente,
>> ----------------------------
>> João David de Lira
>> Fortaleza-Ceará
>> ----------------------------
>>
>> --
>> 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
>>
>
>
>
> --
> Fábio Goll
> Gtalk/Msn: fabiog...@gmail.com
> Twitter: @fabiogoll
>
> --
> 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




-- 
Atenciosamente,
----------------------------
João David de Lira
Fortaleza-Ceará
----------------------------

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

Responder a