2013-02-15 96 views
0

我有两个Kendo UI ListViews。我能够获得可用选项的列表来加载和显示值。我也能够获得拖动功能的工作。问题是目标的丢弃功能。我可以将第二个ListView注册为dropTarget,但我无法确定如何将拖动器添加到目标ListView。Kendo UI ListView Drag - Drop

下面是相关代码:

var groupDataSource = getReadGroupsDataSourceFor(2819); 

    try { 
     var readgroups = $("#availableReadGroups").kendoListView({ 
      selectable: "single", 
      navigatable: false, 
      template: "#if(!IsSelectedGroup) {# <div style='font-size:13px;padding-left:5px;padding-top:5px;'>${GroupName}</div>#} else {# <div class=\"k-state-selected\" style=\"font-size:13px;padding-left:5px;padding-top:5px;\" aria-selected=\"true\">${GroupName}</div> #}#", 
      dataSource: groupDataSource 
     }); 

     var selectedGroups = $("#selectedGroupsValues").kendoListView({ 
      selectable: "single", 
      navigatable: false, 
      template: "#if(!IsSelectedGroup) {# <div style='font-size:13px;padding-left:5px;padding-top:5px;'>${GroupName}</div>#} else {# <div class=\"k-state-selected\" style=\"font-size:13px;padding-left:5px;padding-top:5px;\" aria-selected=\"true\">${GroupName}</div> #}#", 
     }); 

     readgroups.kendoDraggable({ 
      filter: "div[role=option]", 
      hint: function (row) { 
       return row.clone(); 
      } 
     }); 

     selectedGroups.kendoDropTarget({ 
      drop: function (e) { 
       var lvObject= selectedGroups.data(); 
       lvObject.kendoListView.dataSource.add(e.draggable); 
      } 
     }); 
    } catch (err) { 
     alert(err); 
    } 
+0

你的代码似乎没问题,拖放事件就是你所需要的。你可以在jsfiddle中加入一个完整的例子吗?然后,我可以检查出来,并给予更多的帮助 – 2013-02-15 17:52:44

+0

感谢您看看它。这里是jsFiddle链接:http://jsfiddle.net/TheNephalim/4w2Pw/1/ – DerHaifisch 2013-02-15 20:02:08

回答

1

我终于有答案过来了,得到了它在IE和Firefox我的机器上工作;虽然我无法让这个解决方案在jsFiddle中工作,但我无法弄清楚为什么。

下面是代码:

selectedGroups.kendoDropTarget({ 
     drop: function (e) { 
      var lvObject= selectedGroups.data(); 
      lvObject.kendoListView.dataSource.add(readgroups.data("kendoListview").dataSource.getByUid(e.draggable.hint.data().uid)); 
     } 
    }); 

该提示属性显然包含jQuery对象又具有一个数据的方法。当你执行数据方法时,唯一返回的是具有属性uid的对象。使用这个,您可以搜索数据项的可拖动源的dataSource。数据项是您想要提供给目标的dataSource的add方法的内容。