Поделиться через


Экземпляр списка в модели надстроек SharePoint

Подход, который вы используете для создания экземпляров списков, отличается в новой модели надстройки SharePoint от подхода к коду полного доверия. В типичном сценарии с кодом полного доверия (FTC) или решением фермы экземпляры списка были созданы с декларативным кодом и развернуты через решения SharePoint.

В сценарии модели надстройки SharePoint шаблон удаленной подготовки используется для создания экземпляров списка.

Рекомендации высокого уровня

Как правило, мы хотели бы предоставить следующие общие рекомендации по созданию экземпляров списка.

  • Используйте шаблон удаленной подготовки для создания экземпляров списка.
  • Не используйте декларативный код (elements.xml) для создания экземпляров списка.

Начало работы

В следующем примере кода O365 PnP и видео показано, как создать надстройку SharePoint, которая предоставляет пользовательский интерфейс, позволяющий конечным пользователям создавать новые библиотеки документов. В нем также показано, как создать библиотеку документов с определенными конфигурациями, которые совместно представляют шаблон. В этом примере вы найдете код, создающий экземпляр списка.

В следующем видео показано, как выполнить пример кода.

Используйте метод AddList в CSOM SharePoint для создания экземпляра списка с помощью шаблона удаленной подготовки. Следующий код, взятый из ECM. DocumentLibraries (пример кода O365 PnP) иллюстрирует, как это сделать.

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();
    }
}

В следующем примере кода показано, как создать экземпляр списка с помощью REST API SharePoint. Этот пример получен из справочника по REST API списков и элементов списка (статья MSDN)

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

Область применения

  • Office 365 Multi Tenant (MT)
  • Office 365 Dedicated (D) частично
  • Локальная среда SharePoint 2013 — частично

Шаблоны для выделенных и локальных служб идентичны методам модели надстроек SharePoint с отличиями, связанными с возможностью применения технологий.