2013-06-21 14 views

Odpowiedz

9

przypadku złożonych strukturach JSON, można użyć schema.parse

var grid = $("#grid").kendoGrid({ 
    dataSource : { 
     data : [ 
      { 
       "oneType": [ 
        {"id": 1, "name": "John Doe"}, 
        {"id": 2, "name": "Don Joeh"} 
       ] 
      }, 
      {"othertype": "working"}, 
      {"otherstuff": "xyz"} 
     ], 
     pageSize: 10, 
     schema : { 
      parse : function(d) { 
       for (var i = 0; i < d.length; i++) { 
        if (d[i].oneType) { 
         return d[i].oneType; 
        } 
       } 
       return []; 
      } 
     } 
    } 
}).data("kendoGrid"); 

Jeśli nieznacznie zmienić JSON do:

{ 
    "oneType" : [ 
     {"id": 1, "name": "John Doe"}, 
     {"id": 2, "name": "Don Joeh"} 
    ], 
    "othertype" : "working", 
    "otherstuff": "xyz" 
} 

następnie można użyć:

var grid = $("#grid").kendoGrid({ 
    dataSource: { 
     data : { 
      "oneType" : [ 
       {"id": 1, "name": "John Doe"}, 
       {"id": 2, "name": "Don Joeh"} 
      ], 
      "othertype" : "working", 
      "otherstuff": "xyz" 
     }, 
     pageSize: 10, 
     schema : { 
      data: "oneType" 
     } 
    } 
}).data("kendoGrid"); 
+0

Dzięki za odpowiadasz. Za pomocą schematu, w jaki sposób określić kolumny do siatki? Mam na myśli możliwość zdefiniowania struktury kolumnowej siatki. – Saurabh

+1

To wydaje się być inne pytanie. Czy to jest? Istnieją dwa różne pytania: jednym jest definicja modelu; innym jest definicja kolumn. Zdefiniuj kolumny tak, jak robiłeś to wcześniej. – OnaBai

0

Chciałem tylko złożyć kolejną odpowiedź w oparciu o OnaBai.

http://jsfiddle.net/L6LwW/17/

HTML:

<script id="message-template" type="text/x-kendo-template"> 
    #for (var i = 0; i 
    < ddl.length; i++) {# <li><span>#=ddl[i].value#</li> 
    #}# 
    </script> 

<div id="grid"></div> 

JS:

var grid = $("#grid").kendoGrid({ 
    dataSource: { 
    data: [ 
     [{ 
     "id": 1, 
     "name": "John Doe", 
     "ddl": [{ 
      "key": 1, 
      "value": "hello" 
     }, { 
      "key": 1, 
      "value": "hello" 
     }] 
     }, { 
     "id": 2, 
     "name": "Don Joeh", 
     "ddl": [{ 
      "key": 1, 
      "value": "hello" 
     }, { 
      "key": 1, 
      "value": "hello" 
     }] 
     }] 
    ], 
    pageSize: 10, 
    schema: { 
     parse: function(d) { 
     for (var i = 0; i < d.length; i++) { 
      if (d[i]) { 
      return d[i]; 
      } 
     } 
     return []; 
     } 
    } 
    }, 
    columns: [{ 
     field: "id", 
     title: "ID" 
    }, { 
     field: "name", 
     title: "Name" 
    }, { 
     field: "ddl", 
     title: "DDL", 
     width: "180px", 
     template: kendo.template($("#message-template").html()) 
    } //template: "#=ddl.value#" } 
    ] 
}).data("kendoGrid");