Javascript 如何在剑道UI树视图中限制分组和拖动

Javascript 如何在剑道UI树视图中限制分组和拖动,javascript,html,angularjs,kendo-ui,Javascript,Html,Angularjs,Kendo Ui,我有一张这样的肯杜伊树景: 目前,可以通过拖放(组、rect-1..、行、文本)切换第一级元素 不能对元素进行分组,也不能将元素从组内拖到组外。 只能在组内切换元素,在第一级切换元素 我该怎么做呢?我试图回答,我希望它符合您想要的确切行为 不能对元素进行分组,也不能从内部拖动元素 群外群 我猜你希望元素/节点不能改变它的属性 级别(如果条件为第一级) 只能在组内切换元素 我猜你只想在第二个元素里面 每个第一个元素不能切换父元素(第一个if条件) 我的(第二个如果条件)不允许您通过创建第三

我有一张这样的肯杜伊树景:

目前,可以通过拖放(组、rect-1..、行、文本)切换第一级元素 不能对元素进行分组,也不能将元素从组内拖到组外。 只能在组内切换元素,在第一级切换元素


我该怎么做呢?

我试图回答,我希望它符合您想要的确切行为

不能对元素进行分组,也不能从内部拖动元素 群外群

  • 我猜你希望元素/节点不能改变它的属性 级别(如果条件为第一级)
只能在组内切换元素

  • 我猜你只想在第二个元素里面 每个第一个元素不能切换父元素(第一个if条件)

  • 我的(第二个如果条件)不允许您通过创建第三个元素 将第二个元素拖动到另一个第二个元素上

  • 我的(第三个if条件)只允许移动第一个元素,现在我对它进行评论,因为我不确定只允许第一个元素更改是什么意思

将drop函数添加到树视图中,添加以下代码:

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);
     // }

},


向我们展示生成treeview的代码。