Как добавить новый узел в dijit.Tree - PullRequest
1 голос
/ 03 мая 2010

Я хочу добавить новый узел в dijit.ree в качестве брата текущего выбранного узла. Я нашел пример кода (я новичок в dojo), который добавляет новый элемент в дерево с помощью метода newItem ItemFileWriteStore, но новый элемент всегда отображается в нижней части дерева. Как добавить в магазин указанную позицию, в частности позицию, соответствующую текущему выбору? Указатели на образец кода приветствуются:)

Спасибо, Ларри

Ответы [ 3 ]

2 голосов
/ 14 июня 2010

Я понял это; вот ответ для будущих искателей. Используйте newItem, как предложил Алекс. Затем используйте model.pasteItem, чтобы изменить положение нового элемента. pasteItem принимает родителя (selectedNode.item.parent [0]) и позицию (selectedNode.getIndexInParent () + 1)

Larry

2 голосов
/ 02 августа 2012

store.newItem выдает ошибку (Uncaught Error: dojo.data.ItemFileReadStore: неверный аргумент атрибута.). Пока не удалось найти решение этой проблемы, и в моем магазине нет повторяющихся идентификаторов.

Поэтому я попытался использовать model.newItem (newItem, parentItem) . Это прекрасно работает.

Спасибо, Srilatha.

2 голосов
/ 11 мая 2010

Вам необходимо найти родительский элемент текущего выбранного узла и использовать этот элемент в качестве родительского для вновь созданного элемента.

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

Обычно товар в магазине не имеет обратного указателя на своего родителя. Таким образом, вам может потребоваться поддерживать это самостоятельно. Например, вы можете сохранить идентификатор родительского элемента в дочернем элементе и использовать fetchItemByIdentity для получения родительского элемента.

...