2014-02-20 4 views
3

Использования МОЕЙ службы WCF Я обнажая JSON данные:Как связать данные JSON с Кендо Сетка

[OperationContract] 
[WebGet(ResponseFormat=WebMessageFormat.Json)] 
List<ProductDetails> GetProductDetails(); 

Вот пример возвращенного JSON:

{ "d": [{ "__type": "Деталь изделие: #NWProducts", "скидка": 0, "OrderId": 10248, "ProductID": 11, "UnitPrice": 14,0000, "Quanity": 12}, { "__ тип": "Деталь изделие: #NWProducts», "со скидкой": 0, "OrderId": 10248, "ProductID": 42, "UnitPrice": 9,8000, "Quanity": 10}, { "__ типа": ": #NWProducts Детали изделия", "со скидкой" : 0, "OrderId": 10248, "ProductID": 72, "UnitPrice": 34,8000, "Quanity": 5}, { "__ типа": ": #NWProducts Детали изделия", "Скидка": 0, "OrderId": 10249, "ProductID": 14, "UnitPrice": 18,6000, "Quanity": 9}, { "__ типа": "Детали изделия: #NWProducts", "скидка": 0,» OrderId ": 10249," ProductID ": 51," UnitPrice ": 42,4000," Quanity ": 40}

Попытка связать, что Кендо сетке с помощью:

<script> 
       $(document).ready(function() { 
        $("#grid").kendoGrid({ 
         dataSource: { 
          type: "json", 
          transport: { 
           read: "http://localhost/KendoServices/Web/GetProductDetails" 
          }, 
          pageSize: 10 
         }, 
         groupable: true, 
         sortable: true, 
         pageable: { 
          refresh: true, 
          pageSizes: true, 
          buttonCount: 5 
         }, 
         columns: [{ 
          field: "OrderId", 
          title: "OrderId", 
          width: 140 
         }, { 
          field: "ProductId", 
          title: "ProductId", 
          width: 190 
         }, { 
          field: "UnitPrice", 
          title: "UnitPrice" 
         }, { 
          field: "quanity", 
          width: 110 
         }] 
        }); 
       }); 
      </script> 

по некоторым причинам, я «Невозможно увидеть данные по сетке. Возможно, что-то не так с тем, как я пытаюсь связать свои данные.

+0

Просто предложение. ..try добавить 'ServerOperation: false' – MustafaP

ответ

2

Результирующий JSON является виновником здесь. Источник данных kendo по умолчанию ищет объект возврата, чтобы иметь элементы в массиве, называемые результатами. Простота исправления. Просто нужно определить, где данные находятся в объекте JSON ответа.

dataSource: { 
    transport: { 
     read: { 
      url: "http://localhost/KendoServices/Web/GetProductDetails", 
      dataType: 'json' 
     } 
    }, 
    pageSize: 10, 
    schema: { 
     data: function(response) { 
      return response.d; 
     } 
    } 
}, 

--edit ... Возгласы, пропустил что-то другое. Ваш type: 'json' должен быть внутри объекта для чтения, и должен быть dataType: 'json'

+0

По-прежнему то же, Невозможно видеть какие-либо данные в сетке – Simsons

+0

Если вы положите стоп на ответ возврата. d и проверить объект ответа, имеет ли он все ваше JSON в нем где-то? –

+0

Невозможно получить перерыв. Точка работает в response.d, но может проверить Fiddler. Я все получаю внутри. JSON. – Simsons

0

попробовать это

dataSource: { 
    transport: { 
      read: { 
        url: "http://localhost/KendoServices/Web/GetProductDetails", 
        contentType: 'application/json; charset=utf-8', 
        dataType: "json" 
        } 
    }, 
    schema: { 
       data: "d" 
      } 
    } 
} 
0

Это, как я сделал это:

$("#grid").kendoGrid({ 
     dataSource: {    
      transport: { 
        read: { 
          url : pUrl, 
          dataType: "json" 
        } 
      }, 
      pageSize:40,     
      schema: { 
       data: function(response) { 
        return response.json; 
       } 
      }    

     }, 
     height: 550, 
     groupable: false, 
     sortable: true, 
     pageable: { 
      refresh: false, 
      pageSizes: false, 
      buttonCount: 5 
     }, 
     columns: [ 
      { 
       field: "SEQ_NO", 
       title: "No", 
       filterable: false, 
       width: 120 
      }, { 
       field: "LOT_NO", 
       title: "Lot No (INS' No)" 
      }, { 
       field: "TYPE", 
       title: "INPUT (At 100% Burden)" 
      }, { 
       field: "ATTRIBUTE01", 
       title: "1.0 In" 
      }, { 
       field: "ATTRIBUTE02", 
       title: "2.0 In" 
      }, { 
       field: "ATTRIBUTE03", 
       title: "0.05 In" 
      }, { 
        field: "RESILT", 
        title: "RESILT" 
      } 
     ] 
    }); 

Code Result Example

+0

Наружные ссылки на изображения не рекомендуется. – efekctive

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