2013-12-17 65 views
2

我想KendoUI集成(無服務器包裝)工作到我的ASP.NET MVC應用程序:KendoUI電網不符合JSON

下面是HTML文件(只需要代碼):

<div id="example" class="k-content"> 
    <div id="clientsDb"> 
     <div id="grid" style="height: 380px"></div> 
    </div> 

    <script> 
     $(document).ready(function() { 
      $("#grid").kendoGrid({ 
       dataSource: { 
        type   : "json", 
        transport  : { 
         read  : { 
          url  : "data.json", 
          type : "POST", 
          dataType: "json" 
         }, 
         contentType: "application/json" 
        }, 
        schema   : { 
         data : "data", 
         total: "total" 
        }, 
        pageSize  : 10, 
        serverPaging : true, 
        serverFiltering: true, 
        serverSorting : true 
       }, 
       height : 430, 
       groupable : false, 
       sortable : false, 
       pageable : true, 
       columns : [ 
        { 
         field: "PageUrl", 
         title: "PageUrl", 
         width: 140 
        }, 
        { 
         field: "Id", 
         title: "Id", 
         width: 190 
        } 
       ] 
      }); 
     }); 
    </script> 
</div> 

這裏是從「MyContollerName」的「ActionMethodName」方法返回的JSON結果:

{ 
    "Data" : [ 
     { "Id"  : 30, "PageUrl": "http://www.someurl.com" }, 
     { "Id"  : 29, "PageUrl": "http://www.someurl.com/" }, 
     { "Id"  : 26, "PageUrl": "http://www.someurl.com" } 
    ], 
    "Total": 10 
} 

但沒有什麼是渲染(網格渲染,結果都沒有)。獲得無限渲染的「加載」圖標。你可以幫助嗎?

我還發現了以下JS錯誤:「類型錯誤:無法調用未定義/Scripts/kendo/2013.3.1119/kendo.web.min.js:13的方法‘片’」

+0

它是否達到了你的行動?你試圖設置一個斷點? – DontVoteMeDown

+0

是的,操作方法被調用並且JSON結果返回給客戶端。由斷點和fiddler2測試 –

回答

3

在在您使用大寫字母返回數據時,您將數據定義爲data(小寫)。

,將模式改爲:

schema   : { 
    data : "Data", 
    total: "total" 
}, 

,它會工作。

+0

是的正確答案,它花了我一些時間來找到它。 和良好的做法也來定義模型,如:型號:{ ID: 'ID', 字段:{ 編號:{類型: '數'}, PAGEURL:{類型: '字符串'} } } –

+0

太棒了!非常感謝!我永遠不會找到它 –

+0

@Stef,的確如此。如果@和.maz計劃使其可編輯,他將需要聲明'schema.model'。 – OnaBai