Freigeben über


Listeninstanz im SharePoint-Add-In-Objektmodell

Der Ansatz, den Sie zum Erstellen von Listeninstanzen verwenden, ist im neuen SharePoint-Add-In-Modell anders als bei voll vertrauenswürdigem Code. In einem typischen FTC-Szenario (Full Trust Code) bzw. farm solution wurden Listeninstanzen mit deklarativem Code erstellt und über SharePoint-Lösungen bereitgestellt.

In einem SharePoint-Add-In-Modellszenario wird das Remotebereitstellungsmuster verwendet, um Listeninstanzen zu erstellen.

Richtlinien auf hoher Ebene

Als Faustregel möchten wir die folgenden allgemeinen Richtlinien zum Erstellen von Listeninstanzen bereitstellen.

  • Verwenden Sie das Remotebereitstellungsmuster, um Listeninstanzen zu erstellen.
  • Verwenden Sie keinen deklarativen Code (elements.xml), um Listeninstanzen zu erstellen.

Erste Schritte

Im folgenden O365-PnP-Codebeispiel und -Video wird veranschaulicht, wie Sie ein SharePoint-Add-In erstellen, das eine Benutzeroberfläche bereitstellt, mit der Endbenutzer neue Dokumentbibliotheken erstellen können. Außerdem wird veranschaulicht, wie eine Dokumentbibliothek mit bestimmten Konfigurationen erstellt wird, die zusammen eine Vorlage darstellen. In diesem Beispiel finden Sie den Code, der eine Liste instance erstellt.

Das folgende Video führt Sie durch das Codebeispiel.

Verwenden Sie die AddList-Methode im SharePoint-CSOM, um eine Liste instance über das Remotebereitstellungsmuster zu erstellen. Der folgende Code stammt aus dem ECM. DocumentLibraries (O365-PnP-Codebeispiel) veranschaulicht die Vorgehensweise.

private void CreateLibrary(ClientContext ctx, Library library, string associateContentTypeID)
{
    if (!ctx.Web.ListExists(library.Title))
    {
      // Create List Instance
        ctx.Web.AddList(ListTemplateType.DocumentLibrary, library.Title, false);
        List _list = ctx.Web.GetListByTitle(library.Title);

      //Set Description
        if(!string.IsNullOrEmpty(library.Description))
        {
        _list.Description = library.Description;
        }

      //Turn on versioning
        if(library.VerisioningEnabled) {
          _list.EnableVersioning = true;
        }

    //Turn on Content Types
        _list.ContentTypesEnabled = true;
        _list.Update();

      //Add Content Type to List
        ctx.Web.AddContentTypeToListById(library.Title, associateContentTypeID, true);

        //Remove the default Document Content Type
        _list.RemoveContentTypeByName(ContentTypeManager.DEFAULT_DOCUMENT_CT_NAME);

        ctx.Web.Context.ExecuteQuery();
    }
}

Im folgenden Codebeispiel wird veranschaulicht, wie Sie eine Liste instance mit der SharePoint-REST-API erstellen. Dieses Beispiel stammt aus der REST-API-Referenz zu Listen und Listenelementen (MSDN-Artikel)

executor.executeAsync({
  url: "<app web url>/_api/SP.AppContextSite(@target)/web/lists
    ?@target='<host web url>'",
  method: "POST",
  body: "{ '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': true, 'BaseTemplate': 100,
    'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 'Test title' }",
  headers: { "content-type": "application/json;odata=verbose" },
  success: successHandler,
  error: errorHandler
});

PnP-Beispiele

Gilt für

  • Office 365 mit mehreren Mandanten (MT)
  • Office 365 dediziert (D) teilweise
  • SharePoint 2013 lokal – teilweise

Muster für dedizierte und lokale Umgebungen sind identisch mit SharePoint-Add-In-Modelltechniken, aber es gibt Unterschiede bezüglich der verwendbaren Technologien.