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






4.83/5 (3投票s)
在 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
- 包括子站点? 允许的值为True
、False
或PerWeb
。 默认为PerWeb
,即每个子站点的设置,可在站点操作 > 导航(外观)中配置。IncludePages
- 包括页面? 允许的值为True
、False
或PerWeb
。 默认为PerWeb
,即每个子站点的设置,可在站点操作 > 导航(外观)中配置。IncludeHeadings
- 包括标题? 允许的值为True
、False
。IncludeAuthoredLinks
- 包括创作的链接? 允许的值为True
、False
。MaxLevels
- 最大节点级别数。 默认为0
,即无限制。CompactMode
- 如果设置为True
,则导航展开顶级节点和所有父节点到当前节点。 在下面的示例中,节点Child1
、Child2
和Child3
是顶级节点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 字符串。 它演示了如何开发一个自定义类,该类继承 CategoryAttribute
或 DescriptionAttribute
,并从您自己的 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 日:首次发布