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

站点内容 Web 部件 (WSS 3.0)

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2010年5月8日

CPOL

3分钟阅读

viewsIcon

33369

downloadIcon

304

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

引言

此站点内容 Web 部件用于 Microsoft Windows SharePoint Services 3.0Office SharePoint Server 2007,以可展开和折叠的层次结构树显示站点和子站点内容。

描述

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 在代码中引用。 要将图像打包为解决方案中的类资源,请将其包含在 Manifest.xml 中,如下所示:

<?xml version="1.0" encoding="utf-8" ?>

<Solution xmlns="http://schemas.microsoft.com/sharepoint/"
    SolutionId="SolutionGuid" ResetWebServer="false">
    <Assemblies>

        <Assembly Location="QuestechSystems.SharePoint.SiteMapWebPart.dll"
            DeploymentTarget="GlobalAssemblyCache">
            <ClassResources>
                <ClassResource Location="images\node-closed.gif" />
                <ClassResource Location="images\node-open.gif" />
                <ClassResource Location="images\node.gif" />
            </ClassResources>
            <SafeControls>
                <SafeControl 
                    Assembly="QuestechSystems.SharePoint.SiteContentWebPart,
                    Version=1.0.0.0,
                    Culture=neutral, PublicKeyToken=AssemblyToken"
                    Namespace=
                    "QuestechSystems.SharePoint.WebControls.WebParts"
                    TypeName="*" Safe="True" />
            </SafeControls>
        </Assembly>

    </Assemblies>
    <FeatureManifests>
        <FeatureManifest Location="SiteContentWebPart\Feature.xml" />
    </FeatureManifests>

</Solution>

由于项目程序集已部署到 GAC,因此类资源文件的部署路径将类似于:
/_wpresources/QuestechSystems.SharePoint.SiteContentWebPart/1.0.0.0__9804e574157bbcb6/.

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

提供的 Visual Studio 2008 解决方案包含构建和部署此 Web 部件所需的所有支持文件,但缺少强名称密钥文件 (key.snk)。 它包含三个项目:DeploymentFeaturesSharePointSharePoint 项目包含 Web 部件的源代码。Features 项目包含支持 SharePoint 项目的所有功能。Deployment 项目包含一个预构建脚本,用于聚合部署所需的所有文件。 它包含一个 Solution 目录,其中 WSP 文件由后构建脚本生成和部署。

这种 Visual Studio 项目的结构可以扩展到完整的 MOSS/WSS 开发和部署。 您可以添加其他项目,例如 SharePoint.ApplicationPages 用于自定义管理布局页面。 在您的项目中,您可以拥有其他自定义组件,例如用户和 Web 控件、自定义字段、功能接收器等。

安装

使用 stsadm,在 \Deployments\Solution\: 中安装解决方案文件 QuestechSiteContentWebPart.wsp

stsadm -o addsolution -filename QuestechSiteContentWebPart.wsp

转到 SharePoint 管理中心/操作/全局配置-解决方案管理。 将已安装的解决方案部署到选定的 Web 应用程序。 在部署解决方案的网站集中,激活功能 Questech Systems Site Content Web Part。 之后,您应该可以使用站点内容 Web 部件将其添加到页面。

可以将 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;
}
© . All rights reserved.