Экземпляр списка в модели надстроек 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
});
См. также
- Справочник по REST API списков и элементов списка (статья MSDN)
- Определения списков и шаблоны списков (рецепт модели надстройки SharePoint)
- Шаблоны документов и списков с моделью приложения (видео O365 PnP)
- Статьи руководства на https://aka.ms/OfficeDevPnPGuidance
- Ссылки в MSDN на https://aka.ms/OfficeDevPnPMSDN
- Видео на https://aka.ms/OfficeDevPnPVideos
Образцы PnP
- ECM. DocumentLibraries (пример кода O365 PnP)
- Примеры и содержимое на сайте https://github.com/SharePoint/PnP
Область применения
- Office 365 Multi Tenant (MT)
- Office 365 Dedicated (D) частично
- Локальная среда SharePoint 2013 — частично
Шаблоны для выделенных и локальных служб идентичны методам модели надстроек SharePoint с отличиями, связанными с возможностью применения технологий.