2013-05-01 67 views
0

我只是想使用我自己的工作流從我的網格刪除記錄。這是不是通過Javascript做到這一點的正確方法?下面的函數刪除該行,但刷新頁面顯示該行未實際從數據源中刪除,並且在Chrome的網絡選項卡中看不到任何請求。我應該補充一點,我能夠完美地獲得對grid和dataItem的引用。劍道網格定製刪除不堅持數據源

function delete(e) { 

       var $tr = $(e.currentTarget).closest("tr"), 
        grid = this, 
        dataItem = grid.dataItem($tr), 
        id = $tr.attr(kendo.attr("uid")), 
        model = grid.dataSource.getByUid(id); 

       e.preventDefault();   

       grid.dataSource.remove(model); 
       grid.dataSource.sync(); 
    } 

編輯 - 這是我的數據源是如何定義的:

$scope.contacts = new kendo.data.DataSource({ 
      transport: { 
       read: { 
        url: apiUrl, 
        dataType: "json", 
        type: "GET" 
       }, 
       update: { 
        url: apiUrl, 
        dataType: "json", 
        type: "POST" 
       }, 
       destroy: { 
        url: apiUrl, 
        type: "DELETE" 
       }, 
       create: { 
        url: apiUrl, 
        dataType: "json", 
        type: "POST" 
       } 
      }, 
      pageSize: 10 
     }); 
+0

如何定義DataSource.transport? – OnaBai 2013-05-01 20:23:16

+0

@OnaBai:我編輯了我的帖子以包含我的數據源的聲明。 – Gho5t 2013-05-02 14:14:09

+0

在你的'delete'函數中,'dataItem'和'model'應該是一樣的。它應該是足夠的'dataItem'然後'grid.dataSource.remove(dataItem);'但這應該沒有什麼區別,我沒有看到你的傳輸定義有什麼問題...... :-( – OnaBai 2013-05-02 14:58:04

回答

0

我找到了,我不知道,如果它在你的身邊。 我需要在我的kendo.datasource

schema: { 
      model:{id:"id"} 
     } 

加入這行,並引發這樣

 data_source_inspection.remove(selected.data); 
    data_source_inspection.sync(); 

這對我的作品。