2013-07-21 6 views
0

У меня есть список мобильных списков, привязанных к источнику данных kendoui, указывающий на службу odata. У меня есть подсказка $ expand в конфигурации источника данных, чтобы расширить свойство «Пациент» объекта «Заявка», но, глядя на URL-адрес запроса одаты, источник данных kendoui не генерирует код расширения $ в строке запроса. Как я могу получить источник данных kendoui для генерации правильной инструкции $ expand в querystring?

OData query string genereated: http://localhost:1839/OData.svc/Claim?$callback=jQuery20207924230222124606_1374374358450&%24inlinecount=allpages&%24format=json&%24top=10 

<script> 
    $(function() { 
     var app = new kendo.mobile.Application(document.body, { 
      transition: 'slide' 
     }); 

     OData.defaultHttpClient.enableJsonpCallback = true; 


     var data = new kendo.data.DataSource({ 
      type: "odata", // specifies data protocol 
      pageSize: 10, // limits result set 
      transport: { 
       read: "http://localhost:1839/OData.svc/Claim", 
       dataType: "json", 
       data: { 
        $expand: "Patient" 
       } 
      }, 
      schema: { 
       model: {id: "Id"}, 
       data: function (data) { 
        return data.d.results; 
       }, 
       total: function (data) { 
        return data.d.__count; 

       } 
      }, 
      pageSize: 10, 
      serverPaging: true, 
      serverFiltering: true, 
      serverSorting: true 
     }); 

     $("#lst").kendoMobileListView(
     { 
      template: "<strong>${data.ClaimNumber}</strong><br/>", 
      filterable: { 
       field: "ClaimNumber", 
       operator: "contains" 
      }, 
      dataSource: data 
     }); 
    }); 
</script> 

ответ

1

Я добавил это право в транспорте/чтения/URL, а не отдельные данные:

var dataSource = new kendo.data.HierarchicalDataSource({ 
     type: "odata", 
     transport: { 
      read: { 
       // See http://www.odata.org/documentation/odata-v2-documentation/uri-conventions/ for OData URI conventions 
       // OData: ~/api/Users?$inlinecount=allpages&top=2 
       // OData: ~/api/Users?$inlinecount=allpages - includes odata.count 
       // OData: inline filtering: ~/api/Users?$filter=USERNAME eq 'asgro' 
       // to include hierarchical data, use the OData /api/UserGroups?$expand=USER 
       // To reduce the payload sice, the query ~/api/UserGroups will only include the USERGROUP entities, and not any navigation property content 


       url: "/api/UserGroups?$expand=USERS", 
       dataType: "json"        // the default result type is JSONP, but WebAPI does not support JSONP 
      }, 
. 
. 
. 
3

Данные и $ расширить принадлежат внутри объекта чтения. Вы подошли ближе к ответу.

var dataSource = new kendo.data.HierarchicalDataSource({ 
    type: "odata", 
    transport: { 
     read: { 
      // See http://www.odata.org/documentation/odata-v2-documentation/uri-conventions/ for OData URI conventions 
      // OData: ~/api/Users?$inlinecount=allpages&top=2 
      // OData: ~/api/Users?$inlinecount=allpages - includes odata.count 
      // OData: inline filtering: ~/api/Users?$filter=USERNAME eq 'asgro' 
      // to include hierarchical data, use the OData /api/UserGroups?$expand=USER 
      // To reduce the payload sice, the query ~/api/UserGroups will only include the USERGROUP entities, and not any navigation property content 


      url: "/api/UserGroups", 
      data: { 
       $expand: "USERS" 
      }, 
      dataType: "json"        // the default result type is JSONP, but WebAPI does not support JSONP 
     }, 
+0

Для тех, кто задается вопросом, как развернуть несколько полей, используйте только одну строку с значениями, разделенными запятой. '$ expand: 'Пользователи, OtherProperty'' –