【发布时间】:2015-06-26 12:20:33
【问题描述】:
我有一个像这样的 KendoUI TreeView:
目前可以通过拖放切换第一级元素(组,rect-1..,行,文本) 不能对元素进行分组,将元素从组内拖到组外。 应该只能在组内切换元素并在第一级切换元素。
我该怎么做?
【问题讨论】:
-
向我们展示您生成树视图的代码。
标签: javascript html angularjs kendo-ui
我有一个像这样的 KendoUI TreeView:
目前可以通过拖放切换第一级元素(组,rect-1..,行,文本) 不能对元素进行分组,将元素从组内拖到组外。 应该只能在组内切换元素并在第一级切换元素。
我该怎么做?
【问题讨论】:
标签: javascript html angularjs kendo-ui
我试图回答,我希望它符合您想要的确切行为
应该不能对元素进行分组,从内部拖动元素 群外群
应该只能在组内切换元素
由此我猜你只想要在第二个元素内 每个第一个元素,不能切换父级(第一个 if 条件)
我的(第二个 if 条件)不允许您通过以下方式创建第三个元素 将第二个元素拖到另一个第二个元素上
我的(第三个 if 条件)只允许移动第一个元素,现在我评论它,因为我不确定你说的只允许第一个元素改变是什么意思
在树视图中添加拖放功能,添加以下代码:
drop: function(e) {
var data = $('#treeview-left').data('kendoTreeView').dataItem(e.sourceNode);
var newData = $('#treeview-left').data('kendoTreeView').dataItem(e.destinationNode);
// do not allow changing levels
if (data.parent() != newData.parent() ) {
console.log("do not allow changing levels");
e.setValid(false);
}
// do not allow adding to leaf node
if (!newData.hasChidren && e.dropPosition == "over") {
console.log("do not allow adding to leaf node");
e.setValid(false);
}
//only allow 1st level element drag drop but not 2nd element
//if (data.parent()){
// console.log("only allow 1st parent drag drop");
// e.setValid(false);
// }
},
【讨论】: