2013-12-17 6 views
2

Мы asp.net веб-апи OData включена услуга, которая поддерживает различные форматы, такие как OData приложения/JSON; OData = fullmetadataкендо Сетка DataSource с форматом OData = JSON

Данная услуга является работает прекрасно с клиентом службы WCF Data и JayData

Но наше повторное sponse, кажется, не совместим с нашим кендо сетки DATASOURCE

Я исследовал реакцию и вот разница:

Демонстрационная сайта kendoUI который работает отлично имеет следующий ответ:

"__count": "91" 

И тип контента ответ: text/javascript;charset=utf-8

Вы можете увидеть образец кендо 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 работать с нашим текущим ответом? Принимаются любые другие решения.

Обратите внимание, что мы включили OData для KendoDataSource с type: "odata"

Благодарности

ответ

5

Это потому, что KendoUI все еще общается в формате OData V2 и ваш сервер работает с OData V3.

Чтобы решить эту проблему, вы можете использовать V2 на вашей стороне сервера или уточнить, как транспорт KendoUI обрабатывает ответ, добавив следующую конфигурацию объекта источника данных:

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

Так кендо сетка будет понять, что общей будет TOTALCOUNT сечения реакции вместо «__count»

Смежные вопросы