2017-10-20 118 views
0

我想使用Sharepoint REST API和jQuery更新Sharepoint列表記錄中的某個字段並添加新值。如何使用Sharepoint REST API和jQuery更新SharePoint列表中的記錄?

我擁有的項目有123 ID和

我有以下的字典對象,我想用「EXAMPLE_TEXT」

var example_dictionary_object = {example_field:'example_text',id:123} 
的值更新記錄的字段名爲「example_field」

我曾嘗試下面基於this stickoverflow question,沒有運氣:

function sharepoint_record_field_update(list_name,dictionary_object,id){ 
    var appWebUrl = _spPageContextInfo.webAbsoluteUrl; 
    $.ajax({ 
     url: appWebUrl + "/_api/web/lists/getbyTitle('" + list_name + "')/items"+"(" + id + ")", 
     type: "POST", 
     data: JSON.stringify(dictionary_object), 
     async: false, 
     headers: { 
      "accept": "application/json;odata=verbose" 
     }, 
     success: function (data) { 
      console.log('Item has been updated'); 
     }, 
     error: function (err) { 
      console.log(err); 
     } 
    }); 
} 


sharepoint_record_field_update('example_list',{example_field:'example_text'},123) 

回答

0

你沒有正確使用它。你缺少ListItemEntityTypeFullName以及一些必要的標題,如請求摘要,x-http-method和if-match。

嘗試和下面的示例代碼修改代碼:

function UpdateListItem(){ 
    var listName="CustomList"; 
    var listItemId=123; 
    var itemType = GetItemTypeForListName(listName); 
    var item = { 
     "__metadata": { "type": itemType }, 
     "Title": "value change"  
    }; 

    $.ajax({ 
     url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items("+listItemId+")", 
     type: "POST", 
     contentType: "application/json;odata=verbose", 
     data: JSON.stringify(item), 
     headers: { 
      "Accept": "application/json;odata=verbose", 
      "X-RequestDigest": $("#__REQUESTDIGEST").val(), 
      "X-HTTP-Method": "MERGE", 
      "If-Match": "*" 
     }, 
     success: function (data) { 
      console.log('Success');    
     }, 
     error: function (data) { 
      console.log("Error"); 
     } 
    }); 
} 

function GetItemTypeForListName(name) { 
    return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem"; 
}  
+0

@克里斯 - 運氣好的話?你是否嘗試修改上面的代碼? –

相關問題