我正在使用通過dojo.data.ObjectStore和dojo.store.Cache連接到dojo.store.JsonRest的Dojo Datagrid。還有一個連接到Cache存儲的dojo.store.Memory。Dojo Datagrid總是顯示過時的數據
datagrid可通過下拉菜單進行編輯。第一次更改值時,一切看起來都很順利,但如果第二次編輯同一行,則編輯會通過JsonRest和服務器,但網格本身會恢復爲顯示舊值。
這是一個已知的錯誤嗎?任何解決方法的想法?
我正在使用通過dojo.data.ObjectStore和dojo.store.Cache連接到dojo.store.JsonRest的Dojo Datagrid。還有一個連接到Cache存儲的dojo.store.Memory。Dojo Datagrid總是顯示過時的數據
datagrid可通過下拉菜單進行編輯。第一次更改值時,一切看起來都很順利,但如果第二次編輯同一行,則編輯會通過JsonRest和服務器,但網格本身會恢復爲顯示舊值。
這是一個已知的錯誤嗎?任何解決方法的想法?
將數據保存到服務器後,可以創建網格更新行。回調可以像:
function onApplyCellEditHandler(inGrid, inValue, inRowIndex, inFieldIndex) {
inGrid.yourStore.save();
inGrid.updateRow(inRowIndex);
}
希望它可以幫助
沒有看到你的代碼很難說爲什麼所做的更改不會被保留。請記住,DataGrid依賴統一數據接口將更改寫回數據存儲。編輯單元后,通過Dojo數據適配器的setValue()方法寫回更改;未保存的更改存儲在適配器中,直到您調用save()方法:dataStore.save();一旦save()被調用,所有的改變都通過put()調用傳遞給對象存儲。需要記住的是,網格只是顯示/反映商店中的數據。因此,編輯網格中的單元格將不會持續,除非這些更改已在底層商店中永久化。
你能發表一些你的代碼嗎? – Ted 2012-02-01 11:11:35
真的需要看代碼...你是否真的把數據寫回數據庫w /一個適當的保存(如@TedPrz指出)? – pinkeerach 2012-02-07 19:51:04