2010-11-11 25 views
1

J'essaie de faire glisser et déposer des données hiérarchiques dans la même grille de données avancées, et j'aimerais que le fournisseur de données soit mis à jour lorsque l'ADG est mis à jour. (Je veux être en mesure de sauvegarder et de charger cet arbre, il est donc important que les dragues et les gouttes soient sauvegardées.)Mise à jour du fournisseur de données hiérarchique dans la grille de données avancées pendant le glisser-déposer

J'ai un exemple d'application (avec la source de vue activée) posté ici: www.crcarlson.com/adg /AdvancedDataGridDragAndDrop.swf

L'exemple d'application a un ADG affichant des données hiérarchiques ainsi que des données à plat. La première colonne de chaque DataGrid montre l'index de la ligne des données sous-jacentes.

Si vous réorganisez les éléments sur l'ADG gauche, les index de lignes ne sont plus ordonnés. Si vous cliquez sur traceTree, vous voyez que le fournisseur de données n'est pas en ordre.

D'autre part, si vous faites la même chose à droite, les numéros de ligne restent commandés même lorsque les objets se déplacent autour et si vous cliquez sur traceFlat, le fournisseur de données est dans l'ordre indiqué sur ADG

Mon but est de faire correspondre l'ordre du fournisseur de données avec l'ordre ADG pour la grille de gauche qui affiche des données hiérarchiques.

J'apprécierais tous les conseils à ce sujet, y compris "vous ne pouvez pas y arriver à partir d'ici, faites-le de cette façon."

Répondre

1

j'ai remarqué quelques petites choses tout en parcourant votre code et en utilisant l'application:

  • Utilisez un ArrayCollection au lieu de tableau comme fournisseur de données pour un composant de vue dont les modifications de données. Cela pourrait résoudre vos problèmes de mise à jour.
  • Si l'implémentation d'ArrayCollection ne résout pas complètement vos problèmes de mise à jour, ajoutez la logique nécessaire à un gestionnaire d'événement dragDrop ou dragComplete.
  • Je reçois une erreur d'exécution chaque fois que je fais glisser un élément de adg vers adgFlat.

Voici la version d'Adobe Using Drag and Drop. Plus précisément, consultez la dernière page intitulée "Déplacement et copie de données". Bonne chance à toi.

+0

Si quelqu'un d'autre est intéressé, j'ai résolu ce problème en changeant la structure de données sous-jacente. J'ai construit mon arborescence avec des objets implémentant l'interface IHierarchicalData, puis la grille de données a correctement modifié les données sous-jacentes comme je l'avais prévu avec les comportements de glisser-déposer. – crcarlson