SharePoint 外接程序模型中的列表实例
在新 SharePoint 外接程序模型中创建列表实例的方法与使用完全信任代码不同。 在典型完全信任代码 (FTC)/场解决方案场景中,通过 SharePoint 解决方案,使用声明性代码创建了列表实例并对其进行部署。
在 SharePoint 外接程序模型场景中,使用列表实例创建远程预配模式。
高级别准则
作为经验法则,我们希望提供以下有关创建列表实例的高级别准则。
- 使用远程预配模式来创建列表实例。
- 请不要使用声明性代码 (elements.xml) 来创建列表实例。
入门
以下 O365 PnP 代码示例和视频演示了如何创建 SharePoint 外接程序(该外接程序提供了用户界面,使最终用户能够创建新的文档库)。 它还演示了如何使用特定配置(统一代表一个模板)创建文档库。 此示例中,你将发现创建列表示例的代码。
以下视频将展示整个代码示例。
使用 SharePoint CSOM 中的 AddList 方法以通过远程预配模式创建列表实例。 从以下 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();
}
}
以下代码示例解释了如何使用 SharePoint REST API 创建列表实例。 此示例来自列表和列表项 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 示例
适用于
- Office 365 多租户 (MT)
- Office 365 专用 (D) 部分
- SharePoint 2013 本地 – 部分
专用模式和本地模式在使用 SharePoint 外接程序模型技术方面完全相同,但在可以使用的可能的技术方面存在差异。