2010-05-03 6 views
1

Je souhaite ajouter un nouveau noeud à un dijit.ree en tant que frère du noeud actuellement sélectionné. J'ai trouvé un exemple de code (je suis nouveau sur dojo) qui ajoute un nouvel élément à l'arborescence en utilisant la méthode newItem de ItemFileWriteStore, mais le nouvel élément apparaît toujours en bas de l'arborescence. Comment ajouter au magasin à une position spécifiée, en particulier la position correspondant à la sélection actuelle? Pointeurs à un exemple de code serait bienvenu :)Comment ajouter un nouveau noeud à un dijit.Tree

Merci, Larry

Répondre

2

Vous devez trouver l'élément parent du noeud courant sélectionné et utiliser cet élément comme le parent de l'élément nouvellement créé. Normalement, un élément du magasin ne possède pas de pointeur arrière vers son parent. Donc, vous devrez peut-être le maintenir vous-même. Par exemple, vous pouvez stocker l'ID de l'élément parent dans l'élément enfant et utiliser fetchItemByIdentity pour obtenir l'élément parent.

2

Je l'ai compris; voici la réponse pour les futurs chercheurs. Utilisez newItem comme suggéré par Alex. Utilisez ensuite model.pasteItem pour repositionner le nouvel élément. pasteItem prend un parent (selectedNode.item.parent [0]) et une position (selectedNode.getIndexInParent() + 1)

Larry

2

store.newItem donne une erreur (Error Uncaught: dojo.data. ItemFileReadStore: argument d'attribut invalide.). Je n'ai pas vraiment trouvé de solution à ce problème et mon magasin n'a pas d'ID en double. Par conséquent j'ai essayé d'utiliser model.newItem (newItem, parentItem). Cela fonctionne parfaitement bien.

Merci, Srilatha.

Questions connexes