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

导航自定义控件(SharePoint Server 2010)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.83/5 (3投票s)

2010年5月15日

CPOL

3分钟阅读

viewsIcon

91378

downloadIcon

1530

在 HTML 列表标签中渲染导航节点

引言

此 Web 控件用于 Microsoft SharePoint Server 2010,是现成的“当前导航”(又名 AspMenu)的替代方案。 它使用 HTML 列表标签呈现导航节点,例如

此 Web 控件是从我的 SharePoint Server 2007 版本改编而来,用于 SharePoint Server 2010。

描述

该 Web 控件使用 PortalSiteMapProvider 呈现导航节点。 虽然 SharePoint 2010 版本的 AspMenu 支持使用属性 UseSimpleRendering 发出 HTML list 标签,但在您处于顶层以及向下导航节点时,它在显示子级别方面仍然相当僵化。

它具有几个 public 属性

  • SiteMapProvider - 类型为 PortalSiteMapProvider 的站点地图提供程序。 默认为 CurrentNavigation
  • StartNodeKey - 起始子站点的服务器相对 URL。 例如:/PressReleases/2010。 默认为根站点。
  • IncludeSubSites - 包括子站点? 允许的值为 TrueFalsePerWeb。 默认为 PerWeb,即每个子站点的设置,可在站点操作 > 导航(外观)中配置。
  • IncludePages - 包括页面? 允许的值为 TrueFalsePerWeb。 默认为 PerWeb,即每个子站点的设置,可在站点操作 > 导航(外观)中配置。
  • IncludeHeadings - 包括标题? 允许的值为 TrueFalse
  • IncludeAuthoredLinks - 包括创作的链接? 允许的值为 TrueFalse
  • MaxLevels - 最大节点级别数。 默认为 0,即无限制。
  • CompactMode - 如果设置为 True,则导航展开顶级节点和所有父节点到当前节点。 在下面的示例中,节点 Child1Child2Child3 是顶级节点
        Child1
        Child2
            Child21
                Child211 (Current Node)
                    Child2111
        Child3

    如果设置为 False,则还会显示当前节点及其父节点的同级节点。 例如

        Child1
        Child2
            Child21
                Child211 (Current Node)
                    Child2111
                Child212
            Child22
            Child23
        Child3

    默认为 False

  • ListCssClass - 最外层 <ul> 标签的 CSS 类名。
  • NodeCssClass - 常规超链接节点的 CSS 类名。
  • CurrentNodeCssClass - 选定节点的 CSS 类名。
  • CurrentNodeParentCssClass - 选定节点之下的最低级别节点的 CSS 类名。
  • NoUrlNodeCssClass - 没有 URL 的节点的 CSS 类名,例如标题。

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

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

注释

该 Web 控件不完全支持包含导航“标题”的站点层次结构,因为它们无法单击以打开子节点。 但是,如果其中一个子节点是当前节点,则导航将显示父标题。

安装

打开SharePoint 2010 管理外壳,使用 Add-SPSolution 添加解决方案文件 QuestechNavigation.wsp,如下所示

Add-SPSolution "C:\QuestechSystems.Navigation\bin\Release\QuestechNavigation.wsp"

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

stsadm -o addsolution -filename 
	"C:\QuestechSystems.Navigation\bin\Release\QuestechNavigation.wsp"

转到SharePoint 2010 管理中心/系统设置/管理场解决方案。 将已安装的解决方案部署到选定的 Web 应用程序。 要将 Web 控件插入到发布页面,请按如下方式修改相应的主页或页面布局

...
<%@ Register Tagprefix="QuestechPublishingWebControls"
    Namespace="QuestechSystems.SharePoint.Publishing.WebControls"
    Assembly="QuestechSystems.SharePoint.Publishing.Navigation, Version=1.0.0.0, 
              Culture=neutral, PublicKeyToken=57d955ce9c425b79" %>
...
...
<QuestechPublishingWebControls:Navigation CompactMode="False" runat="server" />
...

历史

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