2016-03-09 109 views
0

我有一個網格Angular和遠程數據綁定。它的配置是這樣的:Kendo Grid內聯編輯新行添加後消失

$scope.myGridOptions = { 
     dataSource: new kendo.data.DataSource({ 
       type: "json", 
       transport: { 
        create: function(operation) { 
         //calls an Angular service to add 
         DataService.add(operation).success(function(data) { 
          operation.success(data); 
         }); 
        }, 
        parameterMap: function(options, operation) { 
         if (operation !== "read" && options.models) { 
          return { models: kendo.stringify(options.models) }; 
         } 
        } 
       }, 
       pageSize: 10, 
       schema: { 
        model: { 
         id: "Id", 
         fields: { 
          ... 
         } 
     }), 
     toolbar: [ { name: "create", text: "Add New Book" } ], 
     autobind: false, 
     groupable: false, 
     editable: { 
      mode: "inline" 
     }, 
     columns: [ 
      { 
       field: "Name", 
       title: "Name" 
      }, 
      { 
       field: "Description", 
       title: "Description" 
      }, 
      { 
       command: [ 
        { name: "edit", title: "Action" } 
       ] 
      } 
     ] 
}; 

當我點擊「添加新着」按鈕,在網格中的第一行變成空白行,讓我輸入數據。當完成輸入時,我點擊「更新」保存數據,第一行變成普通的只讀行,並驗證新行已添加到遠程數據庫。到現在爲止還挺好。但是,當我單擊新行上的「編輯」按鈕,然後單擊「取消」按鈕時,我的新行消失,直到我刷新頁面。

我錯過了什麼?

+0

它會更好,如果你可以提供jsfiddle ... –

+0

你是否添加新創建的行?否則檢查Id列的值。它可能仍然是0.刷新頁面時,Id被正確提取。 –

+0

@Jose,你釘了它!我沒有返回新創建的對象,那就是問題所在。您能否在下面提供您的答案,以便我可以將其標記爲已接受並讚揚它?謝謝你的幫助。 – notlkk

回答

1

爲了使kendo dataSource在保存後同步數據,您需要將新創建的行從服務器返回到dataSource。這也適用於更新。