What I am trying to accomplish: After dragging an element I am sending node info (for all elements) to the server so the records can be created for user preferences.
It works fine but... changes to elements do not take affect until the second drop. So, If i drag a root node (say folder1) into another root node (say folder2), under my logic below the parent of folder1 still does not exist. However.. if I drop folder1 onto folder2 a second time the parent then exists. So, ultimately how would I ensure that my logic runs for the changes after the drop?
Thanks in advance.
Snippet of my JavaScript:
$(
"#div_tree"
).kendoTreeView({
dataSource: data.ProDataSet[
"treemenu"
],
dragAndDrop:
true
,
drop:
function
(e){
updatePinPreferences();
}
});
function
checkedNodeIds(nodes,docarray) {
for
(
var
i = 0; i < nodes.length; i++) {
try
{
var
parent = treeView.parent(treeView.findByText(nodes[i].text));
console.log(nodes[i].text +
" | "
+ nodes[i].index +
" | "
+ nodes[i].itemtype +
" | "
+ icount +
" | "
+ treeView.text(parent) );
}
catch
(e){
console.log(
"CANNOT FIND PARENT "
+ nodes[i].text ,e);
parentName =
""
;
}
if
(nodes[i].hasChildren) {
checkedNodeIds(nodes[i].children.view(),docarray);
}
}
}
}
function
updatePinPreferences() {
var
treeView = $(
"#div_tree"
).data(
"kendoTreeView"
),
message;
checkedNodeIds(treeView.dataSource.view(), jdoc);
}