2014-09-04 45 views

回答

0

我改變了你的代碼,所以它可以運行在JSBin

服務http://services.odata.org/V2/(S(2pxev2v2zqtidlzbqzhncots))/OData/OData.svc/Categories不支持對DELETE的批量請求。請參閱響應主體。如果你想要做多個刪除,則可以使用ODataModel.remove

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
    <code/> 
    <message xml:lang="en-US"> 
     Content is unexpected for the Delete operation.    
    </message> 
</error> 

也由一個發送多個DELETE問題之一submitBatch(fnSuccess?, fnError?, bAsync?),該文件表明:

{}功能fnSuccess?

  • 一個回調函數,當批處理請求成功發送時被調用。注:單批操作可能有錯誤。這些錯誤可以在回調處理程序中的aErrorResponses參數中訪問。處理程序可以具有以下參數:oData,oResponse和aErrorResponses。

您必須在成功函數回調中檢查參數aErrorResponses以查看是否發生了任何錯誤。請參閱以下內容來批量刪除和檢查錯誤響應。

var indices = oTable.getSelectedIndices(); 

if (indices.length == 0) { 
    alert("Please Select a row to Delete"); 
    return; 
} else { 
    alert("selected " + indices); 
    var batchChanges = []; 
    for (var i = 0; i < indices.length; i++) { 
     var selectedRow = oTable.getRows()[i]; 
     var selectedId = selectedRow.getCells()[0].getValue(); 
     var selectedName = selectedRow.getCells()[1].getValue(); 
     var del = m.createBatchOperation(
      "Categories(" + selectedId + ")", 
      "DELETE" 
     ); 
     batchChanges.push(del); 
    } 

    m.addBatchChangeOperations(batchChanges); 
    m.submitBatch(function(oData, oResponse, aErrorResponses) { 
     if (aErrorResponses.length > 0) { 
      alert(aErrorResponses[0].response.body); 
     } else { 
      m.refresh(); 
      m.clearBatch(); 
      alert("success"); 
     } 
    }, function(err) { 
     alert("error occured"); 
    }); 
} 
+0

嗨艾倫。是否有任何批量刪除的例子。 – vicky 2014-09-04 14:31:59

+0

嗨vignesh,看到我更新的答案,我只是編輯代碼來啓用mutli選擇表和批量刪除時選擇多行刪除http://jsbin.com/wuweluyufulu/5/。 – Allen 2014-09-04 14:55:04

+0

嗨艾倫。你已經提到URL不支持刪除操作,但通過使用chrome Advanced REST客戶端和郵遞員,我可以執行刪除操作。 – vicky 2014-09-04 17:14:32