Boa noite,

Estou a resolver um problema para o qual me parece que exista algum processo
bem mais simples:

- Tenho uma datagrid com dragEnabled="true" dragMoveEnabled="true"
dropEnabled="true"
- Pretendo apenas reordenar os seus items arrastando-os de posição.

A datagrid faz isso nativamente, mas tenho um campo no dataprovider que é o
"rank", o qual quero actualizar sempre que algum item é movido de sítio.

A forma que estou a utilizar para resolver é:

Adicionar à datagrid dragDrop="cair(event);"

private function cair(evt:DragEvent):void{

  var source:Object = evt.dragSource.dataForFormat('items') as Array; // com
isto sei os dados do item que movi

  // crio um loop que procura a posição na datagrid do item arrastado e
actualiza os ranks de todos os items maiores (em posição na datagrid),
incluindo o arrastado.

}

Como exemplo:

Datagrid inicial:

1 noticia teste
2 outra noticia
3 ainda outra

Arrasto a noticia de rank 3 para entre o rank 1 e rank 2, ficando:

1 noticia teste
3 ainda outra
2 outra noticia

O loop vai procurar o item de rank 3, descobre que está na posicao 1 da
datagrid, actualiza o rank 3 para rank 2 e o rank 2 para rank 3. Vivem
felizes para sempre.

Pergunto se existe alguma forma mais fácil de saber a posição onde o item é
deixado. Pelo que li nos docs e online, é sempre possivel saber o item
arrastado, de onde vem, para que componente vai, mas nada sobre a posição
onde é feito o drop.

Pelo source code do datagrid, vejo que são feitos cálculos pela posição do
drop no x,y, mas parece-me um pouco desnecessário estar a tentar refazer
algo assim.

Alguma sugestão diferente do meu método?


Muito obrigado.


Miguel Vaz

--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade 
Portuguesa de Desenvolvimento de RIAs - www.riapt.org" do Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a