我正在尝试在现有应用程序中使用Kendo UI。
该应用程序从请求分页数据库结果中读取参数“ limit”和“ offset”。
但是,Kendo UI的dataSource
对象传递了这些名为“ take”和“ skip”的参数
是否有一种方法可以告诉Kendo使用自定义键发送这些值,以便它可以遵循与我的应用程序其余部分相同的约定?
答案 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函数对于在使用响应之前重塑响应很有帮助。