適切な変更を行うためにサーバーにコマンドを送信するためにTreeViewでdragendイベントを使用しようとしていますが、これを行うには、ターゲットノードと宛先ノードの両方の親情報が必要です。現在、私は次のものを持っています:
function dragEndEvent(e) {
var treeViewData = $(".hierarchy-tree").data('kendoTreeView');
var quotaSetID = $("#quotaset-id").val();
var columnID = $("#treeViewColumnID").val();
var targetNode = treeViewData.dataItem(e.sourceNode);
var targetParentNode = targetNode.parent();
var destinationNode = treeViewData.dataItem(e.destinationNode);
var destinationParentNode = null;
if(destinationNode!=null )
destinationParentNode = destinationNode.parent();
var targetName = targetNode.text;
var targetID = targetNode.id;
var targetsParentID = null;
if (targetParentNode != null && targetParentNode.length == 1)
targetsParentID = targetParentNode[0].id;
var destinationName = null;
var destinationID = null;
var destinationsParentID = null;
if (destinationNode != null) {
destinationName = destinationNode.text;
destinationID = destinationNode.id;
if (destinationParentNode != null && destinationParentNode.length == 1)
destinationsParentID = destinationParentNode[0].id;
}
// Followed by ajax query
}
私が気付いたのは、parent()呼び出しがリストを返し、実際の親を示していないように見えることです。おそらく私は間違ったイベントをキャッチしていますが、ここでは、parent()関数がターゲットノードの兄弟を返しているようです。また、ノードに親がないかどうか(つまり、ルートレベルにあるかどうか)を確認できるようにしたいと思います。