2013-07-24 46 views
0

我有一個網格,它有一個商店,它從url獲取json數據。當我改變商店中的價值時,我將商店重新分配給電網。我在開發者工具中發現網格正在分配新的商店。即使我用dijit.byId()檢查它,我也能看到更新的商店。但是,顯示仍然保持不變。以下是我用來重新加載我的網格的代碼。重新加載的dojo網格沒有在div中更新

function refreshGridWithNewStore() { 
     require([ 
     "dojox/grid/DataGrid", 
     "dojo/store/Memory", 
     "dojo/data/ObjectStore", 
     "dojo/request", 
     "dojo/domReady!" 
    ], 
    function (DataGrid, Memory, ObjectStore, request) { 
     request.get("DataPage.aspx", { 
      handleAs: "json" 
     }).then(function (data) { 
      grid.store.close(); 
      dataStore = new ObjectStore({ objectstore: new Memory({ data: data }) }); 
      grid.setStore(dataStore);     
      grid.render(); 
     }); 
    }); 
    } 

回答

0

嘗試更改屬性objectstoreobjectStore。據我所知它區分大小寫,所以objectstoreobjectStore不一樣。我認爲即使是grid.render()也沒有必要。

所以,你的代碼將變成:

dataStore = new ObjectStore({ objectStore: new Memory({ data: data }) }); 

我也做出了表率JSFiddle

如果這樣不起作用,請嘗試使用startup()函數。一些小部件需要在改變商店後完全重建,並使用類似下面的代碼可能有助於您的情況。

grid.startup(); 
+0

這是這個錯字,這是造成我的問題。謝謝。 – Sandy

+0

沒問題,這很奇怪,你沒有得到任何錯誤的方式。我複製了你的代碼,並注意到在創建ObjectStore時出現了問題。 – g00glen00b