In this article, I would like to show you utilizing SharePoint REST API and JQuery to Create, Retrieve, Update and Delete SharePoint list item.
Pre-Requisite
- Reference to latest jquery.min.js
- For this example purposes, create custom List called “MyList” with default “Title” column.
Create
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| // occurs when a user clicks the create buttonfunction CreateNew() { var listName = "MyList"; var newItemTitle = "New Title Item"; CreateListItemWithDetails(listName, _spPageContextInfo.webAbsoluteUrl, newItemTitle, function () { alert("New Item has been created successfully."); }, function () { alert("Ooops, an error occured. Please try again."); });}// CREATE Operation// listName: The name of the list you want to get items from// weburl: The url of the web that the list is in. // newItemTitle: New Item title.// success: The function to execute if the call is sucesfull// failure: The function to execute if the call failsfunction CreateListItemWithDetails(listName, webUrl, newItemTitle, success, failure) { var itemType = GetItemTypeForListName(listName); var item = { "__metadata": { "type": itemType }, "Title": newItemTitle }; $.ajax({ url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items", type: "POST", contentType: "application/json;odata=verbose", data: JSON.stringify(item), headers: { "Accept": "application/json;odata=verbose", "X-RequestDigest": $("#__REQUESTDIGEST").val() }, success: function (data) { success(data); }, error: function (data) { failure(data); } });}// Get List Item Type metadatafunction GetItemTypeForListName(name) { return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";} |
Retrieve Item
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| // READ SPECIFIC ITEM operation// itemId: The id of the item to get// listName: The name of the list you want to get items from// siteurl: The url of the site that the list is in. // success: The function to execute if the call is sucesfull// failure: The function to execute if the call failsfunction getListItemWithId(itemId, listName, siteurl, success, failure) { var url = siteurl + "/_api/web/lists/getbytitle('" + listName + "')/items?$filter=Id eq " + itemId; $.ajax({ url: url, method: "GET", headers: { "Accept": "application/json; odata=verbose" }, success: function (data) { if (data.d.results.length == 1) { success(data.d.results[0]); } else { failure("Multiple results obtained for the specified Id value"); } }, error: function (data) { failure(data); } });} |
Retrieve All Items
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| // occurs when a user clicks the read buttonfunction Read() { var listName = "MyList"; var url = _spPageContextInfo.webAbsoluteUrl; getListItems(listName, url, function (data) { var items = data.d.results; // Add all the new items for (var i = 0; i < items.length; i++) { alert(items[i].Title + ":" + items[i].Id); } }, function (data) { alert("Ooops, an error occured. Please try again"); });}// READ operation// listName: The name of the list you want to get items from// siteurl: The url of the site that the list is in. // success: The function to execute if the call is sucesfull// failure: The function to execute if the call failsfunction getListItems(listName, siteurl, success, failure) { $.ajax({ url: siteurl + "/_api/web/lists/getbytitle('" + listName + "')/items", method: "GET", headers: { "Accept": "application/json; odata=verbose" }, success: function (data) { success(data); }, error: function (data) { failure(data); } });} |
Update
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| // occurs when a user clicks the update buttonfunction Update() { var listName = "MyList"; var url = _spPageContextInfo.webAbsoluteUrl; var itemId = "1"; // Update Item Id here var title = "New Updated Title"; updateListItem(itemId, listName, url, title, function () { alert("Item updated, refreshing avilable items"); }, function () { alert("Ooops, an error occured. Please try again"); });}// Update Operation// listName: The name of the list you want to get items from// siteurl: The url of the site that the list is in. // title: The value of the title field for the new item// itemId: the id of the item to update// success: The function to execute if the call is sucesfull// failure: The function to execute if the call failsfunction updateListItem(itemId, listName, siteUrl, title, success, failure) { var itemType = GetItemTypeForListName(listName); var item = { "__metadata": { "type": itemType }, "Title": title }; getListItemWithId(itemId, listName, siteUrl, function (data) { $.ajax({ url: data.__metadata.uri, 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": data.__metadata.etag }, success: function (data) { success(data); }, error: function (data) { failure(data); } }); }, function (data) { failure(data); });} |
Delete
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| // occurs when a user clicks the delete buttonfunction Delete() { var listName = "MyList"; var url = _spPageContextInfo.webAbsoluteUrl; var itemId = "1"; // Update Item ID here deleteListItem(itemId, listName, url, function () { alert("Item deleted successfully"); }, function () { alert("Ooops, an error occured. Please try again"); });}// Delete Operation// itemId: the id of the item to delete// listName: The name of the list you want to delete the item from// siteurl: The url of the site that the list is in. // success: The function to execute if the call is sucesfull// failure: The function to execute if the call failsfunction deleteListItem(itemId, listName, siteUrl, success, failure) { getListItemWithId(itemId, listName, siteUrl, function (data) { $.ajax({ url: data.__metadata.uri, type: "POST", headers: { "Accept": "application/json;odata=verbose", "X-Http-Method": "DELETE", "X-RequestDigest": $("#__REQUESTDIGEST").val(), "If-Match": data.__metadata.etag }, success: function (data) { success(data); }, error: function (data) { failure(data); } }); }, function (data) { failure(data); });} |
No comments:
Post a Comment