我试过这个,遇到了和你一样的问题。然后我注意到 jsfiddle 示例使用的是 Kendo UI v2011.3.1129,而我使用的是 Kendo UI Beta v2012.2.621。这些版本之间发生了重大变化。
解决方案是使用与 jsfiddle 示例相同的版本或更改您的代码。获取数据源时,我在两个地方更改了代码。Grid 小部件现在使用 Model 的 uid 字段而不是 id,它表示其唯一的 id。此外,为了通过其 uid 检索模型实例,应使用 DataSource 的 getByUid 方法。
jsfiddle 示例:
var target = dataSource.get($(e.draggable.currentTarget).data("id"))
更改代码
var target = dataSource.getByUid($(e.draggable.currentTarget).data("uid"))
这必须对目标和目的地都进行。
grid.table/*.find("tbody > tr")*/.kendoDropTarget({
group: "gridGroup",
drop: function (e) {
var target = dataSource.getByUid($(e.draggable.currentTarget).data("uid")),
dest = $(e.target);
if (dest.is("th")) {
return;
}
dest = dataSource.getByUid(dest.parent().data("uid"));
//not on same item
if (target.get("id") !== dest.get("id")) {
//reorder the items
var tmp = target.get("position");
target.set("position", dest.get("position"));
dest.set("position", tmp);
dataSource.sort({ field: "position", dir: "asc" });
}
}
});