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"