Kendo Grid Serverside Paging - II

by LeeMellinger

HTML

<script src="https://kendo.cdn.telerik.com/2016.2.504/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2016.2.504/js/kendo.all.min.js"></script>
<div id="grid"></div>

CSS

<style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
<link rel="stylesheet" href="//kendo.cdn.telerik.com/2016.2.504/styles/kendo.common-material.min.css" />
<link rel="stylesheet" href="//kendo.cdn.telerik.com/2016.2.504/styles/kendo.material.min.css" />

JavaScript

$("#grid").kendoGrid({
    dataSource: {
        serverPaging: true,
        serverSorting: true,
        serverFiltering: true,
        schema: {
            data: "data",
            total: "total"
        },
        pageSize: 10,
        transport: {
            read: function(options) {
                        
                var data = getDataSync(options.data.page);
                options.success(data);
            }
        }
    },
    pageable: {
        refresh: true,
        pageSize: 15,
        numeric: false,       
        messages: {
            display: "{0}-{1} of {2} rows"
        }
    },
    scrollable: false,
    editable: false,
    sortable: true,
    navigatable: false,
    resizable: true,
    reorderable: true,
    selectable: true,
    scrollable: { virtual: true },
    filterable: {
    	mode: "row",
        extra: false
    },
});

function getDataSync(page)
{
    var dataArr = [];
    for (var i = 0; i < 10; i++)
        dataArr.push({ text: "Item " + (i + 1) + " on page " + page, value: 1});
    
    return {data: dataArr, total: 90};
}