【问题标题】:How to add a new node to a dijit.Tree如何将新节点添加到 dijit.Tree
【发布时间】:2011-02-15 02:18:33
【问题描述】:

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

谢谢, 拉里

【问题讨论】:

标签: dojo tree insertion


【解决方案1】:

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

因此我尝试使用 model.newItem(newItem, parentItem)。 这完全没问题。

谢谢, 斯里拉塔。

【讨论】:

    【解决方案2】:

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

    拉里

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-16
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        相关资源
        最近更新 更多