I am creating a new item using NewForm.aspx opened using SP showModalDialog. How can I get the ID of created item after form is saved?
I need to get the ID to do some processing.
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It only takes a minute to sign up.
Sign up to join this communityI am creating a new item using NewForm.aspx opened using SP showModalDialog. How can I get the ID of created item after form is saved?
I need to get the ID to do some processing.
I solved this using SPServices
var lastID = $().SPServices.SPGetLastItemId({
listName:'List 1'
});
this will get last inserted item's id which was created by same user.
List 1 is list's name
You can try running a SP2013 REST api and
get top 1 item while they are sorted by Created date in descending order
once your model dialog saves data in the list. Please refer this:
_api/web/Lists/GetByTitle('your_List_title')/items?$top=1&$select=ID&$orderby=Created desc
I like to use the out of the box modal as a template and utilize the "dialogReturnValueCallback".
// initialize your app name and guid
var appListName= 'YOUR LIST NAME';
var appListGuid = 'YOUR LIST GUID';
// onclick attribute to place if you have a custom button
onclick="displayCustomModalApp(\''+_spPageContextInfo.webServerRelativeUrl+'/Lists/'+appListName+'/NewForm.aspx?&IsDlg=1\')"
// custom modal using modified SharePoint OOB modal method
function displayCustomModalApp(mUrl, width, height, title) {
var options = {
url: mUrl,
width: width,
height: height,
title: title,
dialogReturnValueCallback: function(dialogResult){
// only reset page if item is saved, do nothing if cancelled or closed
if(dialogResult){
// run the function to get last item Id when the dialog closes
retrieveLastItemID();
}
}
};
SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
}
// function to retrieve the last created item Id from current logged in user
function retrieveLastItemID() {
// filter by current author id and order by 'Id desc' to get the latest
var siteUrl = _spPageContextInfo.webAbsoluteUrl;
var fullUrl = siteUrl + "/_api/Web/Lists(guid'"+appListGuid+"')/items?$select=Id&$filter=Author/Id eq '"+_spPageContextInfo.userId+"'&$orderby=Id desc&$top=1";
$.ajax({
url: fullUrl,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose",
},
success: function(data) {
var lastId = data.d.results[0].Id;
// DO STUFF!
},
error: function(error){
console.log(JSON.stringify(error));
}
});
}