ソート可能なウィジェットと仮想スクロール(無限スクロール用)を使用しているグリッドに問題があります。実際には、要素の1つをドラッグしてからスクロールし、その後マウスアップを行うと問題が発生します。ここで見ることができるこれらの操作の結果 - http://prntscr.com/7kvtn6 . 私がドラッグしたアイテムは、その場所を見つけることができません.
var data = [
{'Id': 1, 'FirstName': 'John_1'},
{'Id': 2, 'FirstName': 'John_2'},
{'Id': 3, 'FirstName': 'John_3'},
{'Id': 4, 'FirstName': 'John_4'},
{'Id': 5, 'FirstName': 'John_5'},
{'Id': 6, 'FirstName': 'John_6'},
{'Id': 7, 'FirstName': 'John_7'},
{'Id': 8, 'FirstName': 'John_8'},
{'Id': 9, 'FirstName': 'John_9'},
{'Id': 10, 'FirstName': 'John_10'}];
var grid = $('.js-reorder').kendoGrid({
dataSource: {
data: data,
pageSize: 4,
serverSorting: true,
serverPaging: true
},
height: 125,
scrollable: {
virtual: true
},
columns: [
{ field: "Id", title: "ID", width: "110px" },
{ field: "FirstName", title: "First Name", width: "130px" }
]
});
grid.find('.k-grid-content').find('tbody').kendoSortable({
cursor: 'move'
});
実際、私は理由を見つけました。アイテムのドラッグを開始すると、剣道はそのアイテムのプレースホルダーを作成し、このアイテムを移動すると剣道はプレースホルダーも移動します。ただし、スクロールすると、剣道はグリッドに新しいアイテムをロードし、プレースホルダーを含むテーブル内の既存のすべての要素を置き換えます。そのため、マウスを上げたときに、剣道はアイテムのプレースホルダーを見つけられず、現在のマウスの位置に挿入することができません。
smb はこの動作を回避するのに役立ちますか?