65.9K
CodeProject 正在变化。 阅读更多。
Home

站点内容 Web 部件(SharePoint 2010)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.17/5 (4投票s)

2010年5月15日

CPOL

3分钟阅读

viewsIcon

59549

downloadIcon

1667

以可展开和可折叠的分层树状结构显示站点和子站点内容

引言

用于 Microsoft SharePoint Foundation 2010SharePoint Server 2010,此站点内容 Web 部件在一个可展开和折叠的层次树中显示站点和子站点的内容。这是从我的 WSS 3.0 版本 适配而来,适用于 SharePoint 2010。

描述

Web 部件使用 SPHierarchyDataSourceControl 呈现站点和子站点的内容。 SPHierarchyDataSourceControl 是一个数据绑定控件,实现了 IHierarchicalDataSource 接口,并派生自 HierarchicalDataSourceControl。与导航提供程序 SPNavigationProvider 不同,它除了当前站点之外,还会呈现所有子站点中的内容。它与 SharePoint 用于在快速启动中呈现树视图的控件相同。并且与树视图不同的是,此 Web 部件呈现 HTML 列表标签而不是表格标签。

Web 部件有几个 public 属性

  • TopSiteUrl - (顶级站点 URL) 用于起始子站点的服务器相对 URL。
    例如:/ 表示根站点,或 /PressReleases/2010 表示子站点。 默认为当前站点。
  • ExpandMap - (展开地图?) 在页面加载时展开所有节点。 默认为 true
  • ShowWebChildren - (显示子站点?) 显示子站点。 默认为 true
  • ShowFolderChildren - (显示文件夹?) 显示库和列表中的文件夹。 默认为 true
  • IncludeDiscussionFolders - (显示讨论线程?) 显示讨论列表中的文件夹。 如果为 true,则 ShowFolderChildren 也必须设置为 true 才能生效。 默认为 false
  • MaxLevels - (最大层级) 节点的最大层级数。 默认为 0,表示无限制
  • ListCssClass - 最外层 <ul> 标签的 CSS 类名
  • NodeCssClass - 常规超链接节点的 CSS 类名

Web 部件使用两种方法来包含资源。JavaScript 文件被视为嵌入式资源,图像被视为类资源。要在代码中引用嵌入式资源,请使用 Page.ClientScript.GetWebResourceUrl 并以 [默认命名空间].[包含资源的文件夹].[资源文件名] 的形式传递文件。在 AssemblyInfo.cs 中,像这样包含文件

[assembly: System.Web.UI.WebResource
   ("QuestechSystems.SharePoint.ClientScripts.SiteContentWebPart.js", "text/javascript")]

类资源文件在代码中通过调用 SPWebPartManager.GetClassResourcePath 来引用。要将它们打包用于部署,请在 Visual Studio 2010 中创建一个 SharePoint 2010 空元素。文件被添加到新创建的文件夹下,部署类型 设置为 ClassResource。由于项目程序集部署到 GAC,部署路径将类似于 /_wpresources/QuestechSystems.SharePoint.SiteContentWebPart/1.0.0.0__9804e574157bbcb6/

Web 部件还使用资源文件来存储所有消息和属性 UI 字符串。它演示了如何开发一个继承 WebDescriptionAttributeWebDisplayNameAttributeCategoryAttribute 并从您自己的资源管理器返回本地化 string 的自定义类。

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

安装

打开 SharePoint 2010 Management Shell,使用 Add-SPSolution 添加解决方案文件 QuestechSiteContentWebPart.wsp,如下所示

Add-SPSolution 
    "C:\QuestechSystems.SiteContentWebPart\bin\Release\QuestechSiteContentWebPart.wsp"

或者使用 stsadm,添加解决方案文件 QuestechSiteContentWebPart.wsp,如下所示

stsadm -o addsolution -filename 
    "C:\QuestechSystems.SiteContentWebPart\bin\Release\QuestechSiteContentWebPart.wsp"

转到 SharePoint 2010 Central Administration/System Settings/Manage farm solutions。将已安装的解决方案部署到选定的 Web 应用程序。在部署解决方案的网站集中,激活网站集功能 Questech Systems Site Content Web Part。之后,站点内容 Web 部件(列在 Questech Systems 下)应该可用于您添加到页面中。

CSS 可以添加到母版页或页面布局中以增强 Web 部件的样式。例如,如果 ListCssClass 设置为 scList,则以下定义将使 Web 部件的样式看起来像上面的截图。

.scList, .scList ul
{
    list-style: none;
    padding: 0;
}
.scList, .scList li
{
    margin: 0.66em 0;
}
    
.scList ul
{
    margin: 0.66em 2em;
}

历史

  • 2010 年 5 月 15 日:首次发布
© . All rights reserved.