2014-09-04 2 views
0

Я пытаюсь удалить несколько строк из таблицы. Но я получаю ошибку в миме.Ошибка MIME в ui5

Пожалуйста, помогите мне решить проблему.

например: enter link description here

Спасибо и наилучшими пожеланиями, Викки.

ответ

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> 

Также для 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

Hi Allen. Есть ли пример для пакетного удаления. – vicky

+0

Привет, vignesh, см. Мой обновленный ответ, и я просто редактирую код, чтобы включить mutli select для таблицы и пакетного удаления, когда вы выбираете несколько строк для удаления по адресу http://jsbin.com/wuweluyufulu/5/. – Allen

+0

Привет, Аллен. Вы упомянули, что URL-адрес не будет поддерживать операцию удаления, но с помощью Chrome REST-клиента и почтальона я могу выполнить операцию удаления. – vicky