kendo Grid DataSource,OData格式= json

Yas*_*adi 2 javascript json odata kendo-ui asp.net-web-api

我们有asp.net web api odata启用服务,支持各种OData格式,如application/json; odata = fullmetadata

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

但是我们的响应似乎与我们的kendo网格dataSource不兼容

我已经调查了响应,这是区别的:

kendoUI网站的演示工作正常有以下响应:

"__count": "91"
Run Code Online (Sandbox Code Playgroud)

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

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

http://demos.kendoui.c​​om/web/grid/index.html

这是我们的回应:

"odata.metadata":"http://localhost:2452/odata/$metadata#VehicleGroups","odata.count":"29","value":[
Run Code Online (Sandbox Code Playgroud)

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

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

请注意,我们已为KendoDataSource启用了OData type: "odata"

谢谢

Yas*_*adi 5

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

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

            schema: {
                data: function (data) {
                    return data.value;
                },
                total: function (data) {
                    return data['odata.count'];
                }
            },
Run Code Online (Sandbox Code Playgroud)

因此,剑道网格将了解总数将在响应的totalCount部分而不是"__count"