내 게시물 tumblweed ... awesome! :) 해결 방법을 알아 냈습니다. 여기 있습니다. 이 클래스는 (이것이 WAVEMAKER 프로젝트이기 때문에 클래스가 wm.Page 임)이고
var that = this;
this.trgTree =
new dijit.Tree({
model: this.trgTreeModel,
dndController: "dijit.tree.dndSource",
checkAcceptance: this.treeCheckAcceptance,
checkItemAcceptance: this.trgTreeCheckItemAcceptance,
getIconClass: app.getIcon,
onDndDrop: function(source, nodes, copy) {
that.handleDrop(that, dijit.getEnclosingWidget(
nodes[0]).item, this.current.item);
that.srcStore.save();
that.trgStore.save();
}
}, "trgTree");
handleDrop: function(inPage, inSrcItem, inTrgItem) {
console.info("*** start addItem: srcItem: " + inSrcItem.name[0]);
var srcType = inSrcItem.type[0];
var kids = inSrcItem.items;
if (inTrgItem.type != "fooType") {
// do something unique for fooType node targets
}
// add the item to the tree
inPage.addItem(inPage, inSrcItem, inTrgItem);
}
addItem: function(inPage, inSrcItem, inTrgItem) {
var srcType = inSrcItem.type[0];
var trgType = inTrgItem.type[0];
var theName = inSrcItem.name[0];
if (srcType == "fooType") {
srcType = inSrcItem.txType[0];
}
var newItem = {
id: inSrcItem.id[0],
name: theName,
type: srcType,
items: []
};
newItem = inPage.trgStore.newItem(newItem);
inPage.trgTreeModel.pasteItem(newItem, null, inTrgItem, false, 0);
var kids = inSrcItem.items;
if (kids !== undefined) {
// call recursively to add child items
for (var i in kids) {
inPage.addItem(inPage, kids[i], newItem);
// TODO: expand the node after it is added
}
}
},
이 코드들은 모두 하나의 클래스의 내부가되는 상황에있다. 세부 정보 및 문서가 부족하여 죄송합니다.하지만 좋은 시작 코드입니다. 내 해결 방법에 대해 특정 질문이있는 경우 질문하면 답변을시기 적절하게 시도합니다.
WaveMaker 포럼 [여기] (http://dev.wavemaker.com/forums/?q=node/6219)에서이 작업을 수행하는 방법에 대한 좋은 글이 있습니다. –