2010-04-09 61 views
0

我有一个带有根站点和3个子站点的SharePoint站点,用于实现我使用GlobalNavSiteMapProvider的门户的水平菜单。对于我选择使用CurrentNavSiteMapProviderNoEncode的面包屑。 在subites navegation中,我选择选项“显示页面”(如果我不检查这个选项,breacrumb没有显示子网页的正确路径)和“显示主站点的相同网格”。 breacrumb为所有页面起作用,但在子网站的欢迎页面中显示菜单,而不是显示根网站的全局导航,显示在其中创建的页面(在子网页中菜单正常工作并显示全局网格)。如果我取消选中子网站上的“显示页面”,该菜单在所有页面中都能正常工作,但是bredcrumb只能在根网站的页面上正常工作SharePoint SiteMapProvider - 帮助

回答

0

我过去所做的是定义一个新的导航提供程序在专门用于面包屑的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的网站地图/供应商部分,并指出你的面包屑控制,新的供应商

属性IncludePages =“始终”将覆盖你的设置复选框“显示页面”。

+0

谢谢保罗,你的消化面包屑工程总是很好。但我继续与菜单和GlobalNavSiteMapProvider的问题。通过您的解决方案,我可以取消选中“显示页面”选项,并且可以在所有页面(包括欢迎页面)中使用该菜单。我现在的问题是,我有一个不同的CSS的菜单当前项目,例如在这种情况下: 当前页面= /新闻/ news1.aspx(subsite新闻+页面news1.aspx) Provider.CurrentNode是“/新闻/ “和”新闻“菜单项将与选定的模板呈现什么是错误的。 – jdcorr 2010-04-09 15:06:08

+0

我不确定我现在明白了这个问题。你能够链接到某个地方的截图,以便可以更好地解释一下吗? – 2010-04-09 15:43:42

+0

问题是,如果我不检查“显示页面”,并且例如我在一个子网站的页面中,GlobalNavSiteMapProvider的CurrentNode属性是子网站的根目录而不是页面。要解决这个问题,在我的自定义navegation菜单中检查节点是否代表当前页面,我将页面url(而不是当前节点属性)与节点url进行比较。 – jdcorr 2010-04-12 17:37:55