2014-03-19 5 views
2

Мне нужно удалить все элементы в списке Sharepoint, используя REST API.
Как я могу это достичь?
я могу удалить один элемент с помощью: "/ _api/веб/списки/getByTitle ('MyList')/пунктов ('ID')"Удалить все элементы списка Sharepoint 2013 REST

Я попытался удалить идентификатор, но это не сработало.

ответ

2

Вы должны сделать один звонок для каждого элемента в списке, используя URI, как показано выше, передавая каждый идентификатор подряд. Если в списке есть много элементов, скорее всего, будет дешевле и быстрее удалить, а затем воссоздать сам список.

+0

Итак, я должен ПОЛУЧИТЬ все элементы в списке и называть DELETE для каждого. :(Я думаю, что пойду за удалением списка. –

3

Вы можете попробовать это

function deleteItem(url) { 
$.ajax({ 
    url: _spPageContextInfo.webAbsoluteUrl + url, 
    type: "DELETE", 
    headers: { 
     "accept": "application/json;odata=verbose", 
     "X-RequestDigest": $("#__REQUESTDIGEST").val(), 
     "If-Match": "*" 
    }, 
    success: function (data) { 

    }, 
    error: function (error) { 
     alert(JSON.stringify(error)); 
    } 
}); 
} 

$.ajax({ 
    url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('MyList')/items", 
    type: "GET", 
    headers: { 
     "accept": "application/json;odata=verbose", 
    }, 
    success: function (data) { 
     var items = data.d.results; 
     for(var item in items){ 
      var url = "/_api/Web/Lists/getByTitle('MyList')/getItemById(item.ID)" 
      deleteItem(url); 
     } 
    }, 
    error: function (error) { 
     alert(JSON.stringify(error)); 
    } 
}); 
0

Вы можете попробовать этот код. Но вы должны знать, что здесь может быть исключение в вашем списке. После использования этого кода у меня возникла проблема со списком. Я удалил все элементы, но мои свойства ListCount равны -3. Я рекомендую использовать пакетный запрос для формирования и выполнения запроса. Это будет более быстро и безопасно

window.I = 0; 
deleteFunction(); 

function deleteListItem(listTitle, listItemId, type) 
{ 
    try 
    { 
    var listItemUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items(" + listItemId + ")"; 
    var itemPayload = {'__metadata': {'type': type}}; 

    $.ajax({  
     url: listItemUri, 
     type: "POST", 
     contentType: "application/json;odata=verbose", 
     headers: { 
      "Accept": "application/json;odata=verbose", 
      "X-RequestDigest" : $("#__REQUESTDIGEST").val(), 
      "X-HTTP-Method": "DELETE", 
      "If-Match": "*" 
     },success :function(){ 
      console.log("deleted " + window.I); 
      window.I++; 
      deleteFunction(); 
      }, 
      error: function (data) { 
      window.I++; 
      deleteFunction(); 
      } 
    }); 
    } 
    catch(e) 
    { 
     console.log("error" + window.I); 
     window.I++; 
    } 
} 

function deleteFunction() 
{ 
    try 
    { 
     if(window.I > 1000) return; 
     deleteListItem('ListName',window.I,'SP.Data.ListNameListItem'); 
     console.log("deleted " + window.I); 
    } 
    catch(e) 
    { 
     console.log("error" + window.I); 
     window.I++; 
    } 
} 
Смежные вопросы