做了三天时间得到同事的帮助才搞定,废话不说直接上代码。
2014年5月18日更新:增加了一些注意事项更新代码。突然发现我开始对jquery操作SP着迷了,很简单实用,节省资源。
1,写一个方法单击事件更新,jquery的上下文, 我就省略了。
$("#ButStart").click(function () {
GetList_N();
});
2,方法函数,所有项目的域名用xxxx代替项目站点用xxx代替
//写一个新的方法直接获得List
function GetList_N()
{
var siteUrl =https://xxxx.sharepoint.com/xxx;
var projectList="listName";
getListItems_dct(siteUrl,projectList,failed);
}
注意 这里的listName必须注意,是list显示名称而不是list的远程名称。如果你是刚学,为了避免错误请不要修改list名称,当然这样是不推荐的,还是记住我的方法比较好。
3,下面的代码写一个条件,如果符合条件则写入list中,此处的技术用的遍历数组的简单方法。
至于用法 可以查一下jquery的帮助文件$.each(results,function(result,val),这里先获得源数据,把源数据写入到数组,然后传递。
//为了获取多个文件此处重新写一个GetListItems方法
//为获取对比方法,此处读取2个list进行对比,如成功则把结果写入到新的list里。
function getListItems_dct(url, listname) {
$.ajax({
url: url + "/_api/web/lists/getbytitle('" + listname + "')/items",
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
success: function (data) {
//complete(data); // Returns JSON collection of the results
var results = data.d.results;
//Source_dct(results);
$.each(results,function(result,val){
var Mystr=val.Title+","+val.Approver+","+val.ApprRequired+","+val.CurrentStage;
// alert(Mystr);
Source_dct(Mystr);
});
},
error: function (data) {
failure(data);
}
});
}
4,找到对照数组遍历 有相同的则写入对象list,以下方法是写入。不管是新手或老手请注意调试,这是必须的。推荐使用chrome 很好用
//**************************************************************Insert List Code Start****************************************************************
function executeFeedback(url, type, verb, data, success, error) {
$.ajax({
url: "https://xxxx.sharepoint.com/xxx/_api/web/lists/GetByTitle('AICDocApprovalWFList')/" + url,
type: type,
data: data,
headers: {
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*",
"X-HTTP-Method": verb
},
cache: false,
success: success,
error: error
});
}
function retriveListItem(condition) {
executeGlossary(
"items?$filter=startswith(Title,'" + condition + "')&$select=Title,Description",
"GET",
"GET",
null,
function (data, status, xhr) {
$("#result").empty();
for (var i = 0; i < data.d.results.length; i++) {
var item = data.d.results[i];
$("#result").append("<font style='TEXT-DECORATION: underline'><b>" + item.Title + "</b></font>" + "--" + item.Description + "<br/>");
}
},
function (xhr, status, error) {
$("#result").empty().text(error);
});
}
function createListItem(ArrayVal) {
var InTitle =ArrayVal.split(",")[0];
var GetApprover= ArrayVal.split(",")[1];
var GetApprRe= ArrayVal.split(",")[2];
var InTG = ArrayVal.split(",")[3];
executeFeedback(
"items",
"POST",
"POST",
JSON.stringify(
{
__metadata: { type: "SP.Data.AICDocApprovalListListItem" }, //ListItem前面是列表名称,这是固定格式。这里特别注意的是,这里list名称是url原始名称
Title:''+InTitle,
Approver:''+GetApprover,
DocumentLink:''+GetApprRe,
ProjectID:'34343',
CurrentStatus:''+InTG
}),
function (data, status, xhr) {
alert( InTitle+' inserted successful');
},
function (xhr, status, error) {
$("#result").empty().text(error);
});
}
//**************************************************************Insert list Code End*******************************************************************
<html>
<head>
<TITLE>FeedBack</TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<SCRIPT type=text/javascript src=" /jquery-1.9.1.min.js"></SCRIPT>
<SCRIPT type=text/javascript src=" /JS/knockout-3.1.0.js"></SCRIPT>
<SCRIPT type=text/javascript src=" /JS/json2.js"></SCRIPT>
</head>
<body>
<script type="text/javascript">
function executeFeedback(url, type, verb, data, success, error) {
$.ajax({
url: "https://xxxx.sharepoint.com/xxxx/_api/web/lists/GetByTitle('ListNAME')/" + url,
type: type,
data: data,
headers: {
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*",
"X-HTTP-Method": verb
},
cache: false,
success: success,
error: error
});
}
function retriveListItem(condition) {
executeGlossary(
"items?$filter=startswith(Title,'" + condition + "')&$select=Title,Description",
"GET",
"GET",
null,
function (data, status, xhr) {
$("#result").empty();
for (var i = 0; i < data.d.results.length; i++) {
var item = data.d.results[i];
$("#result").append("<font style='TEXT-DECORATION: underline'><b>" + item.Title + "</b></font>" + "--" + item.Description + "<br/>");
}
},
function (xhr, status, error) {
$("#result").empty().text(error);
});
}
function createListItem() {
executeFeedback(
"items",
"POST",
"POST",
JSON.stringify(
{
__metadata: { type: "SP.Data.'ListNAME'ListItem" },
Title:'123',
CurrentStage:'123456789'
}),
function (data, status, xhr) {
alert('successful');
},
function (xhr, status, error) {
$("#result").empty().text(error);
});
}
</script>
<div id="result" style="width:100%; margin-top:15px; margin-left:25px">
<input type="button" id="feedbackbtn" value="Save" οnclick="createListItem()"/>
</div>
</body>
</html>
有感兴趣的欢迎加入 QQ群:212099235