Telerik数据源Json服务器分页不起作用

时间:2015-07-07 08:52:54

标签: javascript json telerik telerik-grid

我正在研究使用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返回启用服务器分页?

欢迎任何提示!谢谢!

1 个答案:

答案 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);,并且无法使用自定义绑定来显示页码。

尝试删除此行,如上所示