javascript json asp.net-web-api kendo-ui odata

javascript - Kendo Grid DataSource con formato OData=json



asp.net-web-api kendo-ui (1)

Disponemos del servicio asp.net web api odata habilitado que admite variedad de formatos OData como application / json; odata = fullmetadata

Este servicio funciona muy bien con WCF Data Service Client y JayData

Pero nuestra respuesta parece no ser compatible con nuestra fuente de datos kendo grid

Investigué la respuesta y aquí está la diferencia:

La demostración del sitio kendoUI que funciona bien tiene la siguiente respuesta:

"__count": "91"

Y el tipo de contenido de respuesta es: text/javascript;charset=utf-8

Puede ver la muestra de la demostración de la interfaz de usuario kendo en:

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

Y aquí está nuestra respuesta:

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

Y el tipo de contenido de respuesta es: application/json; odata=fullmetadata; charset=utf-8 application/json; odata=fullmetadata; charset=utf-8

¿Puedo tener un ODataMediaTypeFormatter que genere el formato necesario? ¿O hay alguna solución para hacer que KendoDataSource funcione con nuestra respuesta actual? Cualquier otra solución es apreciada.

Tenga en cuenta que hemos habilitado OData para KendoDataSource con el type: "odata"

Gracias


Esto se debe a que KendoUI aún se comunica en el formato OData V2 y su servidor está operando con OData V3.

Para resolver este problema, puede usar V2 en su servidor o refinar cómo el transporte KendoUI procesa la respuesta agregando la siguiente configuración al objeto de origen de datos:

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

Entonces, la grilla de Kendo entenderá que el total estará en la sección totalCount de la respuesta en lugar de "__count"