1

我想向 dijit.ree 添加一个新节点作为当前选定节点的兄弟节点。我找到了使用 ItemFileWriteStore 的 newItem 方法将新项目添加到树的示例代码(我是 dojo 新手),但新项目始终出现在树的底部。如何在指定位置添加到商店,特别是与当前选择对应的位置?指向示例代码的指针将受到欢迎:)

谢谢,拉里

4

3 回答 3

2

我想到了; 这是未来搜索者的答案。按照 Alex 的建议使用 newItem。然后使用 model.pasteItem 重新定位新项目。pasteItem 需要一个父级 (selectedNode.item.parent[0]) 和一个位置 (selectedNode.getIndexInParent()+1)

拉里

于 2010-06-14T13:59:45.283 回答
2

store.newItem 给出错误(未捕获的错误:dojo.data.ItemFileReadStore:无效的属性参数。)。到目前为止还没有真正找到解决方法,而且我的商店没有重复的 ID。

因此我尝试使用model.newItem(newItem, parentItem)。这工作得很好。

谢谢,斯里拉塔。

于 2012-08-02T05:14:25.283 回答
2

您需要找到当前选定节点的父项并将该项用作新创建项的父项。

store.newItem(itemObj, {parent : parentItem, attribute : children});

通常,商店中的项目没有指向其父项的反向指针。因此,您可能需要自己维护它。例如,您可以将父项的 id 存储在子项中,并用于fetchItemByIdentity获取父项。

于 2010-05-11T04:27:14.533 回答