ListView として動作するだけでなく、実際の ListView であることが必要な場合は、次のようにします。
var dataSource = new kendo.data.DataSource({
data : products,
pageSize: 10
});
$("#listView").kendoListView({
dataSource: dataSource,
template : kendo.template($("#template").html()),
dataBound : function () {
$(".product").kendoDraggable({
hint: function (element) {
return element.clone();
}
});
}
});
$("#listView").kendoDropTargetArea({
filter: ".product",
drop : function (e) {
var srcUid = e.draggable.element.data("uid");
var dstUid = e.dropTarget.data("uid");
var srcItem = dataSource.getByUid(srcUid);
var dstItem = dataSource.getByUid(dstUid);
var dstIdx = dataSource.indexOf(dstItem);
dataSource.remove(srcItem);
dataSource.insert(dstIdx, srcItem);
e.draggable.destroy();
}
});
基本的に、各要素を CSS クラスで識別し.product
、それを使用して DataSource に挿入したり削除したりします。これにより、自動的に再描画されます。
ここで実行例を参照してください: http://jsfiddle.net/OnaBai/MYbgy/1/