Sharepoint 2007 SharePoint SiteMapProvider-帮助

Sharepoint 2007 SharePoint SiteMapProvider-帮助,sharepoint-2007,navigation,sitemap,Sharepoint 2007,Navigation,Sitemap,我有一个带有根站点和3个子站点的sharepoint门户,为了实现门户的水平菜单,我使用GlobalNavSiteMapProvider。对于面包屑,我选择使用CurrentNavSiteMapProviderNoEncode。 在子网站导航页面中,我选择了选项ShowPages if i not check此选项Breacrump没有显示子网站页面的正确路径,并且显示了与主站点相同的导航页面。 Breakrum适用于所有页面,但子网站欢迎页面中的菜单(而不是显示根网站的全局导航)显示在子网站页

我有一个带有根站点和3个子站点的sharepoint门户,为了实现门户的水平菜单,我使用GlobalNavSiteMapProvider。对于面包屑,我选择使用CurrentNavSiteMapProviderNoEncode。 在子网站导航页面中,我选择了选项ShowPages if i not check此选项Breacrump没有显示子网站页面的正确路径,并且显示了与主站点相同的导航页面。
Breakrum适用于所有页面,但子网站欢迎页面中的菜单(而不是显示根网站的全局导航)显示在子网站页面中创建的页面菜单工作正常并显示全局导航。如果我取消选中subsite navegation中的Show Pages(显示页面),则菜单在所有页面中都能正常工作,但bredcrumb仅在根站点的页面上正常工作。我过去所做的是在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将覆盖复选框Show Pages的设置。

谢谢Paul,有了您的建议,面包屑总是很好地工作。但我仍然遇到菜单和GlobalNavSiteMapProvider的问题。使用您的解决方案,我可以取消选中ShowPages选项,这样菜单在所有页面(包括欢迎页面)中都能正常工作。我现在的问题是,对于菜单当前项,我有一个不同的css,例如,在本例中:current page=/news/news1.aspx subsite news+page news1.aspx Provider.CurrentNode是/news/,新闻菜单项将使用所选模板呈现,这是错误的。我现在不确定我是否理解这个问题。你能链接到某个地方的屏幕截图以便更好地解释吗?问题是如果我没有检查显示页面,例如,如果我在子网站的页面中,GlobalNavSiteMapProvider的CurrentNode属性是子网站的根而不是页面。要解决此问题,请在自定义导航菜单中检查节点是否表示当前页面,我将页面url而不是当前节点属性与节点url进行比较。