【问题标题】:SharePoint SiteMapProvider - HelpSharePoint SiteMapProvider - 帮助
【发布时间】:2010-04-09 21:25:19
【问题描述】:

我有一个带有根站点和 3 个子站点的共享点门户,为了实现门户的水平菜单,我使用 GlobalNavSiteMapProvider。对于面包屑,我选择使用 CurrentNavSiteMapProviderNoEncode。 在子站点导航中,我选择选项“显示页面”(如果我不选中此选项,则 breacrumb 没有显示子站点页面的正确路径)和“显示主站点的相同导航”。 breacrumb 适用于所有页面,但子站点的欢迎页面中的菜单而不是显示根站点的全局导航,而是显示在其中创建的页面(在子站点页面中,菜单工作正常并显示全局导航)。如果我取消选中子站点导航中的“显示页面”,则菜单在所有页面中都可以正常工作,但 bredcrumb 仅在根站点的页面上正常工作

【问题讨论】:

    标签: sharepoint-2007 navigation sitemap


    【解决方案1】:

    我过去所做的是在 web.config 中定义一个新的导航提供程序,专门用于面包屑。

    <add name="BreadCrumbSiteMapProvider" 
         description="CMS provider for Breadcrumb navigation"
         type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider,
            Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral,
            PublicKeyToken=71e9bce111e9429c" 
         NavigationType="Combined" 
         EncodeOutput="false" 
         IncludePages="Always" 
         IncludeHeadings="true" 
         IncludeAuthoredLinks="true" />
    

    将此添加到 web.config 的 siteMap/providers 部分,并将面包屑控件指向新的提供者

    属性 IncludePages="Always" 将覆盖您为复选框“显示页面”所做的设置。

    【讨论】:

    • 感谢 Paul,在您的建议下,面包屑始终运行良好。但我继续遇到菜单和 GlobalNavSiteMapProvider 的问题。使用您的解决方案,我可以取消选中“显示页面”选项,并且该菜单在所有页面(包括欢迎页面)中都可以正常工作。我现在的问题是我有一个不同的 css 用于菜单当前项,例如在这种情况下:当前页面 = /news/news1.aspx(子站点新闻 + 页面 news1.aspx)Provider.CurrentNode 是“/news/”和“新闻”菜单项将使用所选模板呈现什么是错误的。
    • 我不确定我现在是否理解这个问题。您能否在某处链接到屏幕截图以便更好地解释?
    • 问题是如果我不检查“显示页面”并且例如我在子站点的页面中,则 GlobalNavSiteMapProvider 的 CurrentNode 属性是子站点的根而不是页面。为了在我的自定义导航菜单中解决该问题以检查节点是否代表当前页面,我将页面 url(而不是当前节点属性)与节点 url 进行比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2010-11-27
    • 1970-01-01
    • 2023-04-07
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多