none
office365 sharepoint2013 online 环境利用Jquery 向list写入数据 完整更新代码 RRS feed

  • 常规讨论

  • 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*******************************************************************


    2014年5月18日 3:49