kendo Grid DataSource,OData格式= json

时间:2013-12-17 08:56:29

标签: javascript json asp.net-web-api kendo-ui odata

我们已经 asp.net web api 支持odata的服务,它支持各种OData格式,例如 application / json; odata = fullmetadata

此服务适用于 WCF数据服务客户端 JayData

但我们的回复似乎与我们的 kendo网格数据源无法兼容

我已经调查过这个反应,这就是区别:

正在运行良好的kendoUI网站的演示有如下响应:

"__count": "91"

响应内容类型为:text/javascript;charset=utf-8

您可以在以下位置查看kendo UI演示示例:

http://demos.kendoui.com/web/grid/index.html

以下是我们的回复:

"odata.metadata":"http://localhost:2452/odata/$metadata#VehicleGroups","odata.count":"29","value":[

响应内容类型为:application/json; odata=fullmetadata; charset=utf-8

我可以使用生成所需格式的ODataMediaTypeFormatter吗? 或者是否有任何解决方案可以使KendoDataSource与我们当前的响应一起使用? 任何其他解决方案都表示赞赏。

请注意,我们已使用type: "odata"

为KendoDataSource启用了OData

由于

1 个答案:

答案 0 :(得分:5)

这是因为KendoUI仍然以OData V2格式进行通信,而您的服务器正在使用OData V3进行通信。

要解决此问题,您可以在服务器端使用V2,或者通过将以下配置添加到数据源对象来优化KendoUI传输如何处理响应:

            schema: {
                data: function (data) {
                    return data.value;
                },
                total: function (data) {
                    return data['odata.count'];
                }
            },

因此,剑道网格会理解 总计 将位于响应的 totalCount 部分,而不是" __ count&# 34;