无法在 Sharepoint 2016 中使用 REST API 更新列表中的列表项
Unable to update the list item in the list using REST API in Sharepoint 2016
一个月以来我一直在处理这个问题,但无法解决。我可以使用 GET 方法 rest api 检索列表。但是我无法在 api 中使用 POST 方法更新列表中的项目。为了清晰的图片,我们的想法是获取点击 link 的点击次数,它应该自动更新列表中该 link 名称的计数。因此,之前的开发人员创建了两个列表,名称分别为 'a' 和 'b'.
- 'a' 列表包含 pdf、docx。
- 'b' 列表包含 'a' 列表的 pdf links,名称和其他列。
- 我创建了另一个列表 '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);
}
});
}
在您的 updateItems
函数中,您需要在 resturl
中指定要更新的列表项 ID,如下所示:
var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items(1)";
更多内容可以参考这篇文章:https://www.codesharepoint.com/rest-api/update-listitem-in-sharepoint-using-rest-api
一个月以来我一直在处理这个问题,但无法解决。我可以使用 GET 方法 rest api 检索列表。但是我无法在 api 中使用 POST 方法更新列表中的项目。为了清晰的图片,我们的想法是获取点击 link 的点击次数,它应该自动更新列表中该 link 名称的计数。因此,之前的开发人员创建了两个列表,名称分别为 'a' 和 'b'.
- 'a' 列表包含 pdf、docx。
- 'b' 列表包含 'a' 列表的 pdf links,名称和其他列。
- 我创建了另一个列表 '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);
}
});
}
在您的 updateItems
函数中,您需要在 resturl
中指定要更新的列表项 ID,如下所示:
var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items(1)";
更多内容可以参考这篇文章:https://www.codesharepoint.com/rest-api/update-listitem-in-sharepoint-using-rest-api