有没有办法在Sharepoint中使用* .sitemap文件进行导航?

时间:2009-08-31 22:30:24

标签: sharepoint

我正在开发一个面向公众的发布网站。我需要在MasterPage中提供静态导航。我不希望它与我的网站结构有关。这不会经常编辑。我想使用标准的ASP.Net导航控件<asp:Menu/><asp:SiteMapDataSource/&gt; ,假设您在根目录中有* .sitemap文件。在传统的ASP.NET中,我最终得到以下.aspx来渲染我的导航“

    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server"/>
    <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" />

我了解您可以将* .sitemap文件指向其他位置。我想将其指向列表中的另一个文件,以便用户可以根据需要编辑* .sitemap文件。

为了将此代码转换为sharepoint,我在站点的根目录和/ Pages通过SPDesigner配置了一个* .sitemap文件(稍后将转移到一个功能中),但我最终得到了一个ASP菜单,其中包含指向父级的网站集名称(PU)和作为子级的web.sitemap的链接。见图:

alt text http://employees.claritycon.com/pwalke/blogs/nav.png

我也尝试过使用<SharePoint:AspMenu/>,但我也有同样的行为。

我是在叫错树吗? SharePoint内的所有重定向是否都阻止我使用* .sitemap文件进行导航?

我也愿意使用普通的旧xml文件进行导航。

提前致谢, 彼得

1 个答案:

答案 0 :(得分:4)

您猜测内置ASP.NET XmlSiteMapProvider不能与存储在SharePoint内容数据库中的.sitemap文件一起使用是正确的。我建议继承XmlSiteMapProvider并覆盖BuildSiteMap处理给定siteMapFile路径的方式,以便从SharePoint获取地图数据。为了帮助您入门,可以在此处找到内置提供商的来源:ProviderToolkitSamples.msi