我正在研究使用Json数据构建的混合应用程序。但是有一个小问题。我无法弄清楚如何让分页适用于数据源。
json结构看起来像这样。
{
"respond":1,
"paging":{
"stillmore":1,
"perpage":10,
"callpage":1,
"next":2,
"previous":0,
"pages":6,
"result":"52"
},
"message":"",
"result":[
{Main Data}
]
}
这是我的DataSource结构
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "JsonURL",
dataType: "json",
jsonp: "$callback",
cache: true
},
serverFiltering: true,
filter: { logic: "paging", filters: [ { field: "name", operator: "startswith", value: "Jane" } ] },
parameterMap: function (data, type) {
return kendo.stringify(data);
if (type == "read") {
// send take as "$top" and skip as "$skip"
return {
$callpage: data.page,
$perpage: data.pageSize
}
}
}
},
schema: {
data: "result", // twitter's response is { "results": [ /* results */ ] }
total: "paging.result",
},
sort: {
field: "ID",
dir: "desc"
},
serverPaging: true,
serverSorting: true,
pageSize: 20
});
这不是分页。我有大约100个结果,服务器每页只显示20个。当你想加载下一个20时,没有任何反应。它被卡在加载的GIF上。
我似乎无法弄明白。如何使用此Json返回启用服务器分页?
欢迎任何提示!谢谢!
答案 0 :(得分:1)
您的代码中有错误:
parameterMap: function (data, type) {
// DELETE THIS LINE: return kendo.stringify(data);
if (type == "read") {
// send take as "$top" and skip as "$skip"
return {
callpage: data.page,
perpage: data.pageSize
}
}
}
您立即返回return kendo.stringify(data);
,并且无法使用自定义绑定来显示页码。
尝试删除此行,如上所示