【问题标题】:jQGrid pagination and ODatajQGrid 分页和 OData
【发布时间】:2013-06-07 03:14:54
【问题描述】:

我的问题在于 jQGrid 和 OData 数据源 (.NET WCF)

我正在尝试让 jQgrid 分页正常工作,目前我有一个基本的数据加载和列排序功能。

我通过重写 xmlReader 函数来让 jQgrid 解析 OData XML 来做到这一点

xmlReader: {
    root: "feed",
    row: "entry",
    id: "entry>id",
    total: "m:count"
}

然后在对服务器的请求中,我覆盖了serializeGridData 函数以尝试以 OData 格式发送请求。

serializeGridData: function (obj) {
    obj["$inlinecount"] = "allpages";
    obj["$orderby"] = obj.sidx + " " + obj.sord;
    obj["$skip"] = (obj.page - 1) * obj.rows;
    return obj;
}

但问题是 OData 响应仅包含 m:count,即记录总数。我相信 jQGrid 至少需要 totalrecords、currentpagenum 和 totalPages 才能使分页正常工作。

我错过了什么?

一个附带问题是 Kendo UI Grid 如何实现这一点,我可以从他们的代码中学习(或提升)什么吗??

服务器端分页演示 - http://demos.kendoui.com/web/grid/remote-data.html

演示与 oData 源通信的位置:http://demos.kendoui.com/service/Northwind.svc/Orders

使用相同的 oData 格式并获得相同的响应 - 缺少页码。

【问题讨论】:

    标签: jqgrid odata


    【解决方案1】:

    如果您愿意...我已经为我正在进行的项目工作了,我有一个要点供您仔细阅读...

    https://gist.github.com/dealproc/6678280

    【讨论】:

    • 很高兴有人发现它有用 ;)
    【解决方案2】:

    首先我建议您使用 JSON 而不是 XML 来与 OData WCF 服务进行通信。如果您使用 ASP.NET 4.X,那么您只需在 WCF 服务端点的设置中包含 automaticFormatSelectionEnabled="true" 属性。有关详细信息,请参阅the answer。之后,您可以使用 jqGrid 的 datatype: "json" 和 ajaxGridOptions: { contentType: "application/json" } 选项。 OData WCF 服务将返回 JSON 数据。

    serializeGridData、jsonReader 和prmNames 的例子你会the answer。我认为你也可以在你的情况下使用这些选项。

    【讨论】:

      猜你喜欢
      • 2014-05-17
      • 2012-05-13
      • 2011-04-17
      • 2013-04-04
      • 1970-01-01
      • 2018-09-26
      • 2011-06-16
      • 2015-03-15
      相关资源
      最近更新 更多