Kendo ui 剑道UI:TreeView-如何判断给定节点是否有父节点
我试图在树视图上使用dragend事件,以便向服务器发送命令,以便进行适当的更改,但是,要做到这一点,我需要目标节点和目标节点上的父节点信息。目前我有以下几点:Kendo ui 剑道UI:TreeView-如何判断给定节点是否有父节点,kendo-ui,kendo-treeview,Kendo Ui,Kendo Treeview,我试图在树视图上使用dragend事件,以便向服务器发送命令,以便进行适当的更改,但是,要做到这一点,我需要目标节点和目标节点上的父节点信息。目前我有以下几点: function dragEndEvent(e) { var treeViewData = $(".hierarchy-tree").data('kendoTreeView'); var quotaSetID = $("#quotaset-id").val(); var columnID = $("#tree
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()函数似乎返回了目标节点的兄弟节点。我还希望能够判断节点是否没有父节点(即它在根级别)使用parentNode(),因为parent()会返回您注意到的保存此数据项的数组。使用parentNode(),因为parent()会返回您注意到的保存此数据项的数组。我看不到parentNode()方法也可以。要判断节点是否是dragend事件中的顶级节点,可以使用jquery。您还可以使用jquery获取UID,然后使用它获取数据节点
var targetNode = e.destinationNode;
if ($(targetNode).parent("ul").parent(".k-treeview").length === 1) {
//top level node
} else {
//not top level node
var htmlNode = $(targetNode).parent("ul").parent(".k-item");
//if you need the telerik version of the node
var treeViewData = $(".hierarchy-tree").data('kendoTreeView');
var parentUid = $(htmlNode).data("uid");
var parentNode = treeViewData.findByUid(parentUid);
var parentDataNode = treeViewData.dataItem(parentNode);
var parentid = parentDataNode.id;
}
我也没有看到parentNode()方法。要判断节点是否是dragend事件中的顶级节点,可以使用jquery。您还可以使用jquery获取UID,然后使用它获取数据节点
var targetNode = e.destinationNode;
if ($(targetNode).parent("ul").parent(".k-treeview").length === 1) {
//top level node
} else {
//not top level node
var htmlNode = $(targetNode).parent("ul").parent(".k-item");
//if you need the telerik version of the node
var treeViewData = $(".hierarchy-tree").data('kendoTreeView');
var parentUid = $(htmlNode).data("uid");
var parentNode = treeViewData.findByUid(parentUid);
var parentDataNode = treeViewData.dataItem(parentNode);
var parentid = parentDataNode.id;
}
我不同意上述观点。剑道似乎没有parentNode方法或属性。我不同意上述观点。剑道似乎没有parentNode方法或属性。