我有一个使用REST添加列表项的函数。但是我想在我添加它之前验证列表项是否已经存在于我的列表中。怎么做?
function addListItem() {
var title = $("#txtTitle").val();
var siteUrl = _spPageContextInfo.webAbsoluteUrl;
var fullUrl = siteUrl + "/_api/web/lists/GetByTitle('Employee')/items";
$.ajax({
url: fullUrl,
type: "POST",
data: JSON.stringify({
'__metadata': { 'type': 'SP.Data.EmployeeListItem' },
'EmployeeID': $("#txtEmpID").val(),
'Name': $("#txtName").val(),
}),
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: onQuerySucceeded,
error: onQueryFailed
});
function onQuerySucceeded(sender, args) {
alert("Item successfully added!");
}
function onQueryFailed() {
alert('Error!');
}
};
答案 0 :(得分:0)
您可以使用OData query operations in SharePoint REST requests 在Get操作中使用$filter参数来验证用户是否存在于列表中,使用如下内容:
$filter=Name eq '<UserName>'
一个例子:
siteUrl + "/_api/web/lists/GetByTitle('Employee')/items?$filter=Name eq 'John'
&LT;用户名&gt;是文本框值
您可以在此处看到响应示例:
http://services.odata.org/Northwind/Northwind.svc/Customers?$滤波器=联系人姓名%20当量%20%27Maria%20Anders%27
只需执行Get请求并计算元素以了解用户是否存在
$.get("/_api/web/lists/getbytitle('Employee')/items?$filter=Name eq '<Name>'",function(e){
if($(e).find("entry").length > 0){
console.log("user exists");
}
})
您可以在此处使用JQuery / Javascript查看使用SharePoint 2013 REST端点的完整基本操作:
https://msdn.microsoft.com/en-us/library/office/jj164022.aspx