【问题标题】:Getting kendo Treeview to Copy node on drag and drop让 kendo Treeview 在拖放时复制节点
【发布时间】:2018-07-03 20:40:43
【问题描述】:

我有两个从服务器端源并排填充的树视图。
左侧树视图包含分组的权限。 右侧的树视图包含人员。

我在放置事件中设置了规则,以防止用户拖动除人以外的任何东西的权限:

 $("#tvw-permissions").kendoTreeView({
            dragAndDrop: true,
            dataSource: permissiondatasource,
            dataTextField: ["Text"],
            dataSpriteCssClassField: ["SpriteCssClass"],
            drop: function (e) {
                var srcTree = $($(e.sourceNode).closest("div.k-treeview")).data("kendoTreeView").element[0].id;
                var destTree = $($(e.destinationNode).closest("div.k-treeview")).data("kendoTreeView").element[0].id;

                if (srcTree == destTree) {
                    e.setValid(false);

                }

                var destinationid = $('#' + destTree).data("kendoTreeView").dataSource
                    .getByUid($(e.destinationNode).data("uid")).id;

                if (!destinationid.startsWith('person')) {
                    e.setValid(false);
                    return;
                }
            }

到目前为止一切顺利。但是,我确实希望能够将相同的权限拖给多个人。 Kendo Treeview 对拖放操作执行“移动节点”。

如何让源树上的拖动节点不被移动?

【问题讨论】:

    标签: jquery treeview kendo-asp.net-mvc kendo-treeview


    【解决方案1】:

    解决方案:我首先取消了放置操作,然后手动将 sourceNode 的副本添加到目标树视图,从而使其工作:

     $("#tvw-permissions").kendoTreeView({
         dragAndDrop: true,
         dataSource: permissiondatasource,    
         drop: function (e) {
           e.preventDefault();
           var treeview = $("#tvwPersons").data("kendoTreeView");
           var copy = this.dataItem(e.sourceNode).toJSON();
           treeview.append(copy, $(e.destinationNode));
           return;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-18
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 1970-01-01
      相关资源
      最近更新 更多