現在選択されているノードの兄弟として、dijit.reeに新しいノードを追加したいと思います。ItemFileWriteStoreのnewItemメソッドを使用してツリーに新しいアイテムを追加するサンプルコード(dojoは初めて)を見つけましたが、新しいアイテムは常にツリーの下部に表示されます。指定された位置、特に現在の選択に対応する位置でストアに追加するにはどうすればよいですか?サンプルコードへのポインタは大歓迎です:)
ありがとう、ラリー
私はそれを考え出した; これが将来の検索者への答えです。アレックスが提案したようにnewItemを使用してください。次に、model.pasteItem を使用して新しいアイテムを再配置します。pasteItem は、親 (selectedNode.item.parent[0]) と位置 (selectedNode.getIndexInParent()+1) を取ります。
ラリー
store.newItem でエラーが発生しています (Uncaught Error: dojo.data.ItemFileReadStore: Invalid attribute argument. )。これまでのところ、これに対する修正を実際に見つけることができず、私のストアには重複した ID はありません。
したがって、 model.newItem(newItem,parentItem)を使用してみました。これは問題なく動作します。
ありがとう、シュリラサ。
現在選択されているノードの親アイテムを見つけ、そのアイテムを新しく作成されたアイテムの親として使用する必要があります。
store.newItem(itemObj, {parent : parentItem, attribute : children});
通常、ストア内のアイテムには、その親を指すバック ポインターはありません。そのため、自分でそれを維持する必要があるかもしれません。たとえば、親アイテムの ID を子アイテムに格納し、親アイテムfetchItemByIdentity
を取得するために使用できます。