2014-10-08 207 views
0

我正在使用kendo網格(Angular JS)的web應用程序工作。每次刪除或插入操作後,我應該撥打grid.saveChanges()。但在特殊情況下,如kendo grid cancelChanges issue

  1. 插入一條記錄並調用的SaveChanges
  2. 然後刪除相同的記錄,並調用的SaveChanges
  3. 然後撥打電話grid.cancelChanges()

通常它回到最後saveChanges狀態,但在我的情況下,它顯示刪除的行。任何幫助?

回答

0

最後我得到了solution.My問題與獨特id.After保存數據我已經改變的ID:當你打電話cancelChanges()存儲在_pristineData屬性,以便嘗試這種解決方法的數據恢復grid.dataSource.data()項。因此,grid.dataSource._pristineData和grid.dataSource._data之間的映射被破壞了。所以我的解決方案是更改grid.dataSource._pristineData的id。現在它的工作。謝謝您。

0

我試過了你在這個演示中說的:http://demos.telerik.com/kendo-ui/grid/editing但它工作正常。

也許只有在您手動撥打saveChanges()時纔有效。

var grid= $("#YourGrid").data("kendoGrid"); 
grid.saveChanges(); 
grid.dataSource._pristineData = grid.dataSource._data; 
+0

我認爲這個問題與grid.addRow()有關,我手動設置了一個id(grid.dataSource._data [grid.dataSource._data.length - 1] .id = 0;)。問題cancelChanges()。 – user3161958 2014-10-09 06:02:54

+0

所以當你刪除你說的那一行時,你在dataSource中添加了哪一行?並且cancelChanges()開始正常工作? – 2014-10-09 09:22:31

+0

我改變了我的代碼就像你說的,但使用代碼後,如果我在網格中進行任何更改,它也影響grid.dataSource._pristineData而不調用savechanges()。更具體地說,如果在grid.dataSource._data中完成任何更改,它也影響grid.dataSource._pristineData – user3161958 2014-10-09 10:08:48