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