Javascript 剑道UI列表视图拖放
我有两个剑道UI列表视图。我能够获得加载和显示值的可用选项列表。我还能够让拖动功能发挥作用。问题是目的地的放置功能。我可以让第二个ListView注册为dropTarget,但无法确定如何将DragTable添加到目标ListView 以下是相关代码:Javascript 剑道UI列表视图拖放,javascript,listview,drag-and-drop,kendo-ui,Javascript,Listview,Drag And Drop,Kendo Ui,我有两个剑道UI列表视图。我能够获得加载和显示值的可用选项列表。我还能够让拖动功能发挥作用。问题是目的地的放置功能。我可以让第二个ListView注册为dropTarget,但无法确定如何将DragTable添加到目标ListView 以下是相关代码: var groupDataSource = getReadGroupsDataSourceFor(2819); try { var readgroups = $("#availableReadGroups").k
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);
}
var-groupDataSource=getReadGroupsDataSourceFor(2819);
试一试{
var readgroups=$(“#availableReadGroups”).kendoListView({
可选:“单一”,
可导航:false,
模板:“#如果(!IsSelectedGroup){#${GroupName}}否则{#${GroupName}}}”,
数据源:groupDataSource
});
var selectedGroups=$(“#selectedGroupsValues”)。kendoListView({
可选:“单一”,
可导航:false,
模板:“#如果(!IsSelectedGroup){#${GroupName}}否则{#${GroupName}}}”,
});
readgroups.kendoDraggable({
筛选器:“div[role=option]”,
提示:函数(行){
返回row.clone();
}
});
选择edgroups.kendoDropTarget({
删除:功能(e){
var lvObject=selectedGroups.data();
lvObject.kendoListView.dataSource.add(e.draggable);
}
});
}捕捉(错误){
警惕(err);
}
我终于想出了一个答案,并让它在我的机器上的IE和FireFox中运行;不过,我无法让这个解决方案在JSFIDLE中工作,我也不知道为什么
代码如下:
selectedGroups.kendoDropTarget({
drop: function (e) {
var lvObject= selectedGroups.data();
lvObject.kendoListView.dataSource.add(readgroups.data("kendoListview").dataSource.getByUid(e.draggable.hint.data().uid));
}
});
提示属性显然包含jQuery对象,而jQuery对象又有一个数据方法。执行数据方法时,返回的唯一内容是一个具有属性uid的对象。使用此选项,您可以在可拖动源的数据源中搜索数据项。数据项是要提供给目标数据源的add方法的数据项 您的代码似乎还可以,drop事件就是您所需要的。你能在JSFIDLE中给出一个完整的例子吗?然后我可以查看它并提供更多帮助。谢谢您查看它。以下是JSFIDLE链接: