SharePoint 2013 站点属性管理工具

在 Microsoft SharePoint 2013 中,存在多种存储配置数据的方式。例如,委托控件可以使用元素清单,Web部件可以使用 .webpart 文件,而全局配置则可以使用 web.config 文件、自定义 SharePoint 列表或 SPFarm、SPWebApplication、SPSite、SPWeb 和 SPList 的属性袋。然而,本文介绍的工具专注于管理 SPWeb 的自定义属性。

这些自定义属性,通常称为属性袋,存储在 SharePoint 站点的元数据中。它们通过 SPWeb.AllProperties 哈希表访问,并且可以通过 SPWeb.GetProperty、SPWeb.AddProperty、SPWeb.SetProperty 和 SPWeb.RemoveProperty 等 API 进行操作。这些属性在构建自定义组件时非常有用,因为它们提供了一个存储配置数据的地方。

开发这个工具的挑战在于如何使界面与其他 SharePoint 应用程序页面无缝集成。这不仅包括外观和感觉,还包括用户界面的整个工作方式以及背后的实现。

在 SharePoint 中,有多种地方可以存储配置数据。对于委托控件,可以使用元素清单;对于 Web 部件,可以使用 .webpart 文件;对于全局配置,可以使用 web.config 文件、自定义 SharePoint 列表或 SPFarm、SPWebApplication、SPSite、SPWeb 和 SPList 的属性袋。尽管有许多免费工具可以覆盖上述一些场景,但本文介绍的工具仅限于管理 SPWeb 的自定义属性。它应该能够覆盖大多数用例。在 SPFarm 或 SPWebApplication 中存储属性风险更高,可能需要更高的访问权限,这在生产环境中可能并不总是可用,或者需要访问 SharePoint 2013 中央管理,而应用程序页面通常会位于其中。

描述

这个工具包括三个应用程序页面:MngSiteProperties.aspx(管理页面)、AddSiteProperty.aspx(添加页面)和 EditSiteProperty.aspx(编辑页面)。所有三个页面都继承自 WebAdminPageBase,并且 RequireSiteAdministrator 被覆盖为返回 true。

UI 元素尽可能使用内置的 SharePoint 元素进行渲染。使用的元素包括用户控件 ToolBar.ascx、ToolBarButton.ascx、InputFormSection.ascx、InputFormControl.ascx、ButtonSection.ascx 以及自定义控件 SPGridView 和 InputFormTextBox。

所有 UI 字符串都存储在资源文件中。应用程序页面中使用的 UI 字符串存储在应用程序全局资源文件 QuestechSystems.SharePoint.SiteProperties.Global.resx 中。该文件在 Visual Studio 2013 中的部署类型设置为 AppGlobalResource。

在 MngSiteProperties.aspx 中,站点属性列表在 SPGridView 中渲染,并被 UpdatePanel 包裹,将在下一点中详细解释。ItemTemplate 用于渲染到编辑页面的超链接,将属性名称作为查询字符串传递。必须小心对属性名称进行 URL 编码,因此不能使用 HyperLinkField。

使用 SharePoint 模态对话框机制启动添加和编辑操作,具体是函数 SP.UI.ModalDialog.showModalDialog。编写了一个回调函数,在添加或编辑操作成功完成后手动刷新 UpdatePanel。或者,可以使用 SP.UI.ModalDialog.RefreshPage,但这会刷新整个页面,并且它使用表单提交!

为了在逻辑完成后回调到启动器页面,在 AddSiteProperty.aspx 和 EditSiteProperty.aspx 的代码后台的行动事件中添加了以下内容: page.Response.Clear(); page.Response.Write( String.Format(@" ", returnValue)); page.Response.End();

这将 SP.UI.ModalDialog.commonModalDialogClose 渲染到浏览器中,使其关闭当前对话框,并将 returnValue 传递给启动器回调函数。

由于 SharePoint 将站点属性存储在哈希表中,属性值可能是对象而不仅仅是字符串。管理页面将使用 ToString 列出属性值,但如果检测到属性值不是字符串,则编辑页面中的 OK 按钮将被禁用,不允许编辑。

在编辑任何内置站点属性时必须非常小心,除非知道自己在做什么。

应用程序页面通过站点功能 SiteProperties 的 CustomAction 在 Site Settings 中公开。

提供的 Visual Studio 2013 解决方案包括构建和部署此工具所需的所有支持文件,除了强名称密钥文件。它充分利用了内置的 SharePoint 集成。不再需要第三方工具或自定义的预构建和后构建脚本来构建 SharePoint 解决方案文件。

安装

打开 SharePoint 2013 管理 Shell,使用 Add-SPSolution 命令添加解决方案文件 QuestechSystems.SharePoint.SiteProperties.wsp,如下所示: Add-SPSolution "C:\_deployment\QuestechSystems.SharePoint.SiteProperties.wsp"

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485