0

我从网络服务收到的 Json 数据是

{"meta": {"limit": 20, "next": "/api/un_bn_in/?offset=20&limit=20&format=json", "offset": 0, "previous": null, "total_count": 439603}, "objects": [{"id": 1, "phrase": "this is bengali test", "resource_uri": "/api/un_bn_in/1/", "verified_by_admin": true, "verified_by_usr": true}] }

转到下一页的网址是“/api/un_bn_in/?offset=20&limit=20&format=json”

我的 jsonreader 函数如下:-

jsonReader{
    id : "id",
    repeatitems: false,
    root: function (obj) { return obj.objects; },
    records: function (obj) { 
          return 20; },
    total: function (obj) { return obj.meta.total_count; 
}

这里真正的问题是当我按下 jqgrid 生成的下一页按钮 url 是 /api/un_bn_in/?format=json&_search=false&nd=1383576507420&rows=20&page=1&sidx=id&sord=asc

但我想生成“/api/un_bn_in/?offset=20&limit=20&format=json”这个url,这样我就可以得到下一页

对此问题的任何帮助将不胜感激

4

1 回答 1

1

您可以使用jqGrid的 prmNames 选项来重命名标准 jqGrid 选项或删除其他一些选项。例如选项

prmNames: {nd: null, search: null, sort: null, order: null, rows: "limit" }

将删除一些您不需要的参数并将rows选项重命名为limit. 您将获得类似的 URL /api/un_bn_in/?format=json&limit=20&page=2。最后一步是替换limitpage选项到/api/un_bn_in/?format=json0&limit=20&offset=20. 在这种情况下,您可以serializeGridData额外使用。产生的选项可能是关于以下

url: "/api/un_bn_in/?format=json",
prmNames: {nd: null, search: null, sort: null, order: null, rows: "limit" },
serializeGridData: (postData) {
    return {
        limit: postData.limit,
        offset: (parseInt(postData.page, 10) - 1) * postData.limit
    };
}
于 2013-11-04T18:02:21.503 回答