2011-08-14 16 views
1

我試圖創建一個DataGrid與從Web服務檢索到的一些數據。經歷了很多苦難後,我意識到問題不在於數據或服務中。我能夠以聲明方式創建DataGrid,但我需要以編程方式進行,因爲我將在更復雜的場景中執行此操作。以編程方式創建Dojo DataGrid:「對不起,發生了錯誤。」佈局問題?

我從一個複雜的用例變成了一個非常簡單的用例,它仍然失敗。 我所看到的只是DataGrid,但帶有經典的「對不起,發生了錯誤」錯誤。

+----------+----------------------------+ 
| id  | name      | 
+----------+----------------------------+ 
|  Sorry, an error occurred   | 
|          | 

這是我簡單的例子:

<html> 
<head> 
<link rel="stylesheet" href="MyCSS.css"> 
<script type="text/javascript" src="lib/dojo/dojo.js" charset="utf-8"></script> 
<script> 
    dojo.require("dojo.data.ItemFileReadStore"); 
    dojo.require("dojox.grid.DataGrid"); 
</script> 
</head> 

<body class="soria"> 
    <div id="node" style="width:650px;height:300px"></div> 
    <script> 
     var structure = [ 
      {field: "id", width: 20}, 
      {field: "name", width: 100} 
     ]; 

     var data = [ 
      {"id": 1, "name": "John"}, 
      {"id": 2, "name": "Lucy"} 
     ]; 

     var node = dojo.byId("node"); 
     var store = new dojo.data.ItemFileReadStore({ 
      data: data 
     }); 
     var grid = new dojox.grid.DataGrid({ 
      store: store, 
      structure: structure 
     }, 
     document.createElement('div')); 

     node.appendChild(grid.domNode); 
     grid.startup(); 
    </script> 
</body> 
</html> 

我希望我失去了一些東西真的很愚蠢。控制檯不顯示錯誤。

有什麼建議嗎?

回答

5

的問題是,數據存儲需要不同的格式:

var store = new dojo.data.ItemFileReadStore({ 
    data: {items: data} 
}); 

這解決了問題。

相關問題