普通用法
$("#grid").html(''); // 如果不清空 会出现多次请求接口的问题
$('#grid').kendoGrid({
       columns: [
          {
            title: '序号', // 表头名称
            template: function (data) {
              return num++;
             },
           width: 80,
           filterable: false,
           encoded: true
          },
    ],
       sortable: true,
                filterable: true,
       dataSource: {
                    data: data,  // 表格数据
                    pageSize: 10 // 显示条数
   }
}
后端传参

$("#grid").html(''); // 如果不清空 会出现多次请求接口的问题
$("#grid").kendoGrid({
                    dataSource: {
                        pageSize: 10, // 必须放到 transport 前面
                        serverPaging: true,
                        transport: {
                            read: function (options) {
                                if (!options.data.pageSize) {
                                    options.data.page = 1;
                                }
                                var PageSize = options.data.pageSize === undefined ? -1 :
                                    options.data.pageSize;
                                var PageIndex = options.data.page || 1;
                                $.ajax({
                                    url: '请求的地址',
                                    type: 'GET',
                                    data: {
                                        title: '',
                                        fileType: '',
                                        status: '',
                                        taskTime: '',
                                        pageIndex: PageIndex,
                                        pageSize: PageSize,
                                    },
                                    contentType: "application/json",
                                    dataType: "json",
                                    async: !0,
                                    cache: !1,
                                    success: function (results, status, n) {
                                        results.list.forEach(function (item, index) {
                                            item.sortNumber = index - 0 + 1 + (
                                                PageIndex - 1) * PageSize;
                                        });
                                        options.success(results); // 成功后的数据放到这个
                                    },
                                    error: function (e, t, n) {
                                        alert('error')
                                    }
                                });
                            }
                        },
                        schema: {
                            model: {
                                id: 'linkID'
                            },
                            data: function (d) {
                                return d.list;
                            },
                            total: function (d) {
                                // counte = d.total;
                                return d.total;
                            }
                        },
                    },
                    pageable: {
                        pageSizes: true,
                        buttonCount: 5
                    },
                    persistSelection: true,
                    change: onChange,
                    height: '500px',
                    columns: [{
                            selectable: true,
                            width: "50px"
                        },
                        {
                            field: 'sortNumber',
                            title: '序号',
                            width: 80
                        },
                        {
                            field: "title",
                            title: "标题"
                        },
                        {
                            field: "fileType",
                            title: "文件类型"
                        },
                        {
                            field: "linkID",
                            title: "linkID"
                        },
                        {
                            field: "taskTime",
                            title: "时间"
                        },
                        {
                            field: "",
                            title: "操作",
                            template: function (dataItem) {
                                return '<span class="text-primary" style="cursor:pointer" data-id="' +
                                    dataItem.linkID + '">详情</span>';
                            }
                        }
                    ]
                });
 
全部勾选
function quanxuan() {
      $.ajax({
        url: "https://demos.telerik.com/kendo-ui/service/Products",
        dataType: "jsonp",
        type: 'get',
        success: function (data) {
          // 首先要勾选当前页 不然 存在无法勾选当前页面选中样式的问题
          $.each(grid.tbody.find('tr'), function () {
            $(this).find('input[type=checkbox]').prop('checked', true);
            $(this).addClass('k-state-selected');
          })
          // 把请求的参数的id 循环放到  grid._selectedIds中 
          data.forEach(item => {
            grid._selectedIds[item.ProductID] = true
          });
        },
        error: function (err) {
          alert(err)
        }
      })
    }
注意: 这个ajax 一定要把所有的数据到请求过来 
 
清除勾选
var grid = $('#gridTable').data('kendoGrid');
grid.clearSelection(); // 清除当前页的选中行 
grid._selectedIds = {}; // 清除所有的选中行
   注意: 在实际应用中,会发现上面清除选中项的“grid._selectedIds = {}”,存在无法清除当前页面选中样式的问题,所以,我配合使用了grid.clearSelection()。
 
查看勾选
//方法一:
var grid = $("#grid").data("kendoGrid");
grid.select();    //输出选中行的数据(当前页)

//方法二:
var grid = $("#grid").data("kendoGrid");
 //输出选中行的关键字(支持分页) 注: 要求这个grid必须设置schema的model,输出的选中项数据就是model设定的值,如mode设置的是id,那么输出的值就是选中行的id值。
console.log(grid.selectedKeyNames()); 
 
指定某一行选中
//方法1:
var grid = $("#grid").data("kendoGrid");
grid.select("tr:eq(0)");

//方法2:
var grid = $("#grid").data("kendoGrid");
var uid = grid.dataSource.at(0).uid;
grid.select("tr[data-uid='" + uid + "']");

 

 当前页全部勾选
方法一:
 var gridData = $('#gridTable').data('kendoGrid');
            var items = gridData.items();
            $.each(items, function (i, item) {
               gridData.select(item);
            });
方法二:
 $.each(gridData.tbody.find('tr'), function () {
                $(this).find('input[type=checkbox]').prop('checked', true); // 此处设置每行的checkbox选中,必须用prop方法
                $(this).addClass('k-state-selected');
            });
 
 
 
 完整代码
      // 勾选事件
        onChange1: function (e) {
            var _this = this;
            var arr = $('#gridTable').data('kendoGrid').selectedKeyNames();
            arr.forEach(function (item) {
                if (_this.gouxuanshuju.indexOf(item) === -1) {
                    _this.gouxuanshuju.push(item);
                }
            });
        },
 $('#gridTable').kendoGrid({
                dataSource: {
                    pageSize: 10,
                    serverPaging: true,
                    transport: {
                        read: this.bind(function (options) {
                            if (!options.data.pageSize) {
                                options.data.page = 1;
                            }
                            var PageSize = options.data.pageSize === undefined ? total : options.data.pageSize;
                            var PageIndex = options.data.page || 1;
                            $.ajax({
                                url: '请求的地址',
                                type: 'get',
                                data: {
                                    userName: this.userId,
                                    title: '',
                                    fileType: '',
                                    status: '',
                                    taskTime: '',
                                    bigType: '',
                                    pageIndex: PageIndex,
                                    pageSize: PageSize
                                }
                            }, this.bind(function (error, result) {
                                if (!error) {
                                    for (let i = 0; i < result.list.length; i++) {
                                        result.list[i].index = i + 1;
                                    }
                                    options.success(result);
                                } else {
                                    alert({
                                        type: 'error',
                                        str: result.responseJSON ? result.responseJSON.message : result.responseText
                                    });
                                }
                            }));
                        })
                    },
                    schema: {
                        model: {
                            id: 'id'
                        },
                        total: function (data) {
                            total = data.total;
                            return data.total;
                        },
                        data: function (data) {
                            return data.list;
                        }
                    }
                },
                pageable: {
                    pageSizes: true, // 是否显示跳转页
                    buttonCount: 5 // 默认显示几页
                },
                persistSelection: true,
                change: _this.bind(function () {
                    _this.onChange1();
                }),
                columns: [
                    {
                        width: 40,
                        selectable: true
                    },
                    {
                        title: '序号',
                        width: 80,
                        field: 'index'
                    }, {
                        title: '文件标题',
                        field: 'title',
                        width: 200
                    }, {
                        title: '文件类型',
                        field: 'fileType',
                        width: 200
                    }, {
                        title: '送达时间',
                        field: 'taskTime',
                        width: 160,
                        template: function (data) {
                            return moment(data.taskTime).format('YYYY-MM-DD hh:mm:ss');
                        },
                        filterable: false,
                        encoded: true
                    },
                    {
                        command: '',
                        title: '操作',
                        filterable: false,
                        encoded: true,
                        width: 120,
                        template: function (dataItem) {
                            var html = `<a href="#" class="text-primary" data-name="gridView" data-value="${dataItem.status}" title="${dataItem.status}" >${dataItem.status}</a>`;
                            return html;
                        }
                    }
                ],
                dataBound: function (e) { // 数据回显
                    if ($('#saveBacklog').html()) {
                        var gridData = $('#gridTable').data('kendoGrid');
                        selectedLinID.find(function (item) {
                            var aaa = e.sender._data.findIndex(function (data) {
                                return data.linkID === item;
                            });
                            if (aaa !== -1) {
                                gridData.tbody.find('tr').eq(aaa).find('input[type=checkbox]').prop('checked', true);
                                gridData.tbody.find('tr').eq(aaa).addClass('k-state-selected');
                            }
                        });
                    }
                },
                sortable: true // 是否排序

            });

 

 表格高度沾满整个页面
// element 元素
tableHeigth: function (element) {
var dataArea = element.find('.k-grid-content'); var bottomArea = element.find('.k-grid-pager'); var newHeight = $(document.body).height() - element.offset().top; var diff = element.innerHeight() - dataArea.innerHeight(); element.height(newHeight - bottomArea.innerHeight()); dataArea.height(newHeight - diff - bottomArea.innerHeight()); },