2010-05-03 3 views
1

dijit.ree에 새 노드를 현재 선택된 노드의 형제로 추가하려고합니다. ItemFileWriteStore의 newItem 메소드를 사용하여 트리에 새 항목을 추가하는 샘플 코드 (dojo를 처음 사용하는 경우)가 있지만 새 항목은 항상 트리의 맨 아래에 나타납니다. 특정 위치, 특히 현재 선택 항목에 해당하는 위치에서 상점을 추가하려면 어떻게해야합니까? 코드 샘플에 대한 포인터 환영합니다 :)에게dijit.Tree에 새 노드를 추가하는 방법

감사합니다 것, 래리

답변

2

당신은 현재 선택된 노드의 부모 항목을 찾아 새로 만든 항목의 부모로 해당 항목을 사용해야합니다.

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

는 일반적으로 저장소에 항목은 부모에 다시 포인터 포인트가 없습니다. 그래서 당신은 그것을 스스로 지켜야 할 수도 있습니다. 예를 들어, 상위 항목의 ID를 하위 항목에 저장하고 fetchItemByIdentity을 사용하여 상위 항목을 가져올 수 있습니다.

2

나는 그것을 알아 냈다. 미래의 검색 사용자를위한 답변입니다. Alex가 제안한대로 newItem을 사용하십시오. 그런 다음 model.pasteItem을 사용하여 새 항목의 위치를 ​​변경하십시오. dojo.data : pasteItem 부모 (selectedNode.item.parent [0]) 및 위치 (selectedNode.getIndexInParent() + 1)

래리

2

store.newItem 오류 (catch되지 않은 오류를주고 걸린다. ItemFileReadStore : 속성 인수가 잘못되었습니다.). 지금까지 이것에 대한 픽스를 찾을 수 없었고 내 스토어에는 중복 된 ID가 없습니다.

따라서 model.newItem (newItem, parentItem)을 사용해 보았습니다. 이것은 완벽하게 작동합니다.

감사합니다. Srilatha.

관련 문제