2016-05-13 9 views
-1

Der folgende Code fügt Elemente in der Liste erfolgreich hinzu, aber ich möchte Element in dem Ordner, der in der Liste vorhanden ist, mithilfe der REST-API hinzufügen. Der Listenname ist "Bezeichnung" und der Ordnername ist "Ordner1". Welche Änderungen muss ich vornehmen, um das Element in den Ordner einzufügen?Hinzufügen von Element in Ordner in der Liste mit REST-API in SharePoint?

$.ajax({ 
      url:"https://brillio446.sharepoint.com/teams/Social2016/work/_api/web/lists/getByTitle('Designation')/items", 
      method:"POST", 
      dataType:"json", 

      data: JSON.stringify({ 
               '__metadata': {'type': 'SP.Data.DesignationListItem' }, 
               'Title': 'D1', 

              }), 

      headers: { 
          "Accept": "application/json;odata=verbose", 
          "content-type": "application/json; odata=verbose", 
          "X-RequestDigest": $("#__REQUESTDIGEST").val(), 

         }, 
      success: function(data){ 
         alert("Item added successfully!"); 
         }, 
      error: function(err){ 
          alert("Error while adding item: " + JSON.stringify(err)); 
         } 
}); 

Ich finde auch, dass Ordnerpfad dort sein sollte, damit ich diesen Code versucht ... Aber ich habe Fehler, dass ‚Pfad‘ tut nicht exist in SP.Data.DesigantionListItem

data: JSON.stringify({ 
    '__metadata': {'type': 'SP.Data.DesignationListItem' }, 
    'Title': 'D1', 
    'Path': '/ServerRelativeUrl of folder', 
}), 

Antwort

1

Es scheint es ist nicht unterstützen Sie die uRL angeben, während Listenelement zu schaffen, aber man könnte die folgende Vorgehensweise zu beachten:

  • erstellen ListItem Ressource
  • erhalten File Ressource zugeordnet und in Ordner

Beispiel bewegen

function executeJson(options) 
{ 
    var headers = options.headers || {}; 
    var method = options.method || "GET"; 
    headers["Accept"] = "application/json;odata=verbose"; 
    if(options.method == "POST") { 
     headers["X-RequestDigest"] = $("#__REQUESTDIGEST").val(); 
    } 

    var ajaxOptions = 
    {  
     url: options.url, 
     type: method, 
     contentType: "application/json;odata=verbose", 
     headers: headers 
    }; 
    if("payload" in options) { 
     ajaxOptions.data = JSON.stringify(options.payload); 
    } 

    return $.ajax(ajaxOptions); 
} 



function createListItem(listTitle,properties,folderUrl){ 
    var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items"; 
    return executeJson({ 
     "url" :url, 
     "method": 'POST', 
     "payload": properties}) 
     .then(function(result){ 
      var url = result.d.__metadata.uri + "?$select=FileDirRef,FileRef"; 
      return executeJson({url : url}); 
     }) 
     .then(function(result){ 
      var fileUrl = result.d.FileRef; 
      var fileDirRef = result.d.FileDirRef; 
      var moveFileUrl = fileUrl.replace(fileDirRef,folderUrl); 
      var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getfilebyserverrelativeurl('" + fileUrl + "')/moveto(newurl='" + moveFileUrl + "',flags=1)"; 
      console.log(url); 
      return executeJson({ 
        "url" :url, 
        "method": 'POST', 
        }); 
     }); 
} 

Nutzungs

var listTitle = "Requests"; //list title 
var targetFolderUrl = "/Lists/Requests/Archive"; //folder server relative url 
var itemProperties = { 
    '__metadata': { "type": "SP.Data.RequestsListItem" }, 
    "Title": 'Request 123' 
}; 


createListItem(listTitle,itemProperties,targetFolderUrl) 
.done(function(item) 
{ 
    console.log('List item has been created'); 
}) 
.fail(function(error){ 
    console.log(JSON.stringify(error)); 
}); 

Gist

+0

ich Ihren Code aber es ist nicht w versucht orking –

+0

@RajanRai, was funktioniert nicht, irgendwelche Fehlermeldungen? –

+0

Kein Fehler Sir aber keine Elemente sind im Ordner hinzugefügt. –

Verwandte Themen