Невозможно обновить элемент списка в списке с помощью REST API в Sharepoint 2016

Я работаю с этой проблемой месяц, но не могу ее решить. Я могу получить список, используя метод GET rest api. Но я не могу обновить элементы в списке с помощью метода POST в rest api. Для большей ясности наша идея состоит в том, чтобы получить количество кликов, нажатых на ссылку, и оно должно автоматически обновлять счетчик в списке для этого имени ссылки. Итак, предыдущие разработчики создали два списка с уже названными 'a' и 'b'.

  • Список 'a' содержит файлы PDF, docx.
  • Список 'b' содержит ссылки в формате PDF на список 'a', имя и другие столбцы.
  • Я создал другой список 'c', где он содержит имя списка 'b' и счетчик.

Итак, я пытаюсь обновить столбец счетчика в списке 'c'. Но я не могу обновить счетчик из самого кода. Приведенный ниже код - это один из методов, которые я пробовал. Пожалуйста, помогите мне решить эту проблему, когда я не понимаю, даже после того, как попробовал многие методы из блогов sharepoint и репетиторов за последний месяц.

function getItems() {  
    var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items"; 
        $.ajax({  
            url: resturl,  
            type: "GET",  
            headers: {  
                "accept": "application/json;odata=verbose",  
            },  
            success: function(data) {  
                //console.log(data.d.results);  
                var items = data.d.results; 
                for (var i = 0; i < items.length; i++) {                
                console.log("From C List -> Name: " + items[i].Title + ", Count: " + items[i].Count);                 
                }  
            },  
            error: function(error) {  
            alert(JSON.stringify(error));  
            }  
        });  
 }  

var prevcount = 0;
function updateItems() {  
   
       var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items";
       prevcount = prevcount + 1;
   
       $.ajax({
           url: resturl,
           method: "POST",
           headers: {
               "accept": "application/json;odata=verbose",
               "X-RequestDigest": $("#__REQUESTDIGEST").val(),
               "content-Type": "application/json;odata=verbose",
               "IF-MATCH": "*",
               "X-HTTPS-Method": "MERGE"
           },
           data: "{__metadata:{'type':'SP.Data.cListItem'}, Count: prevcount}",
      
           async: false, success: function (data) {              
           console.log(data.d.results);   
           },
     
           error: function (data) {   
           console.log(data.responseJSON.error);   
           }   
       });
   }


person Venkat Sai    schedule 16.02.2021    source источник


Ответы (1)


В вашей функции updateItems вам необходимо указать идентификатор элемента списка для обновления в resturl, например:

var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items(1)";

Вы можете обратиться к этой статье для получения дополнительной информации: https://www.codesharepoint.com/rest-api/update-listitem-in-sharepoint-using-rest-api

person Michael Han_MSFT    schedule 17.02.2021