1. 程式人生 > >office365 sharepoint2013 Jquery 向list插入資料

office365 sharepoint2013 Jquery 向list插入資料

做了三天時間得到同事的幫助才搞定,廢話不說直接上程式碼。

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" onclick="createListItem()"/>
</div>
</body>
</html>

 有感興趣的歡迎加入 QQ群:212099235