Kendo-重命名“ skip”和“ take”参数

时间:2018-07-25 15:09:15

标签: kendo-ui

我正在尝试在现有应用程序中使用Kendo UI。 该应用程序从请求分页数据库结果中读取参数“ limit”和“ offset”。 但是,Kendo UI的dataSource对象传递了这些名为“ take”和“ skip”的参数

是否有一种方法可以告诉Kendo使用自定义键发送这些值,以便它可以遵循与我的应用程序其余部分相同的约定?

1 个答案:

答案 0 :(得分:1)

本机不支持此功能,但是您可以自己轻松实现此目的:

function parameterMapPaging(data) {
    if (data.hasOwnProperty('take')) {
        data.limit = data.take;
        delete data.take;
    }
    if (data.hasOwnProperty('skip')) {
        data.offset = data.skip;
        delete data.skip;
    }
    return data;
}

并从数据源parameterMap函数中调用此函数:

var myData = new kendo.data.DataSource({
    transport: {
        read: {
            url: "/myEndpoint",
            type: "GET",
            contentType: "application/json; charset=UTF-8"
        },
        parameterMap: function (data) {
            return JSON.stringify(parameterMapPaging(data));
        }
    },
    serverPaging: true // enable serverPaging so take and skip are sent as request parameters
}

到kendo文档的链接包含一个甚至更简单的实现,但是本质上,解决方案是在发送请求之前在parameterMap函数中重塑您的请求。这是该功能的既定目的:

  

将请求参数转换为适合远程服务的格式的功能

顺便说一句,您可能还会发现parse函数对于在使用响应之前重塑响应很有帮助。