使用kendo可排序和kendo虚拟滚动的问题

时间:2015-06-24 19:26:44

标签: javascript kendo-ui kendo-grid kendo-sortable

我遇到网格问题,我正在使用可排序的小部件和虚拟滚动(用于无限滚动)。实际上,当您开始拖动其中一个元素然后滚动并在此之后执行鼠标操作时会出现问题。 你可以在这里看到这些操纵的结果 - 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'
});

其实我找到了理由。当你开始拖动项目时,kendo会为它创建占位符,当你移动这个项目时,kendo也会移动占位符。但是当您滚动时,kendo会在网格中加载新项目并替换表格中包含占位符的所有已存在的元素。因此,当你向上鼠标时,kendo无法找到物品的占位符并将其插入当前鼠标位置,我们就拥有了它们。

smb可以帮助避免这种行为吗?

此处示例 - http://jsfiddle.net/eu20k7zg/5/

0 个答案:

没有答案