locked
Quick Launch only dynamically displays 50 sites. RRS feed

  • Question

  • I have a WSS30 site with 67 subsites but the quick launch will only dynamically display 50.  If I manually add a new navigation link then it will display the new link as site 51.  If I create a new subsite (number 68) it will drop the 50th site from the list and add the newly created site, along with displaying the 51st site.

    Navigation configurations:
      -Sort manually
      -Current Navigation: Display only the navigation items below the current site 
      -The navigation is set to manually sort.

    The site is using a team site template. 

    Thanks,
    Richard
    Monday, January 4, 2010 9:25 PM

Answers

  • Hi,

    By default, the controls used to populate the navigation in a SharePoint Publishing site have a display limit of 50 elements, which means that if the number of published pages exceed this threshold, they will not be displayed in the controls.

    The recommended workaround to manage the navigation structure is, after publishing one site, to manually add it to the site's navigation structure. (Add new link, point to the new site URL)

    If you want all the pages to be automatically displayed, you should edit the web.config file for your site, find the web.config for the site you are maintaining and where you experience the issue. Please find the following configuration Keys:

    <add name="GlobalNavSiteMapProvider" description="CMS provider for Global navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Global" EncodeOutput="true" />

    <add name="CombinedNavSiteMapProvider" description="CMS provider for Combined navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Combined" EncodeOutput="true" />

    <add name="CurrentNavSiteMapProvider" description="CMS provider for Current navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" EncodeOutput="true" />

    <add name="CurrentNavSiteMapProviderNoEncode" description="CMS provider for Current navigation, no encoding of output" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" EncodeOutput="false" />

    Add a DynamicChildLimit="0" before the end tag "/>" on each line to disable the default 50 elements limit:

    The purpose of the DynamicChildLimit="0" configuration entry is described here: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.navigation.portalsitemapprovider.dynamicchildlimit.aspx

    Hope it helps.


    Xue-Mei Chang
    • Marked as answer by Kalik Monday, January 11, 2010 8:20 PM
    Wednesday, January 6, 2010 7:15 AM
    Moderator

All replies

  • Hi Richard,
    First try changing the current nav to Display the current site, the navigation items below the current site, and the current site's siblings.
    Then - have you tried different master pages?  Are you using a custom master page?
    Out of curiosity I did a test site and was able to display 55 subsites on the quick launch just fine.

    Now, perhaps more important, what is the need to display or even have so many subsites?  It seems to me that more organization would be better and perhaps extending the sites with pages instead of adding another subsite.


    Happy Coding, ~CodeHawk MCSD | MCTS [SharePoint Development]
    Monday, January 4, 2010 10:30 PM
  • Hi,

    By default, the controls used to populate the navigation in a SharePoint Publishing site have a display limit of 50 elements, which means that if the number of published pages exceed this threshold, they will not be displayed in the controls.

    The recommended workaround to manage the navigation structure is, after publishing one site, to manually add it to the site's navigation structure. (Add new link, point to the new site URL)

    If you want all the pages to be automatically displayed, you should edit the web.config file for your site, find the web.config for the site you are maintaining and where you experience the issue. Please find the following configuration Keys:

    <add name="GlobalNavSiteMapProvider" description="CMS provider for Global navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Global" EncodeOutput="true" />

    <add name="CombinedNavSiteMapProvider" description="CMS provider for Combined navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Combined" EncodeOutput="true" />

    <add name="CurrentNavSiteMapProvider" description="CMS provider for Current navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" EncodeOutput="true" />

    <add name="CurrentNavSiteMapProviderNoEncode" description="CMS provider for Current navigation, no encoding of output" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" EncodeOutput="false" />

    Add a DynamicChildLimit="0" before the end tag "/>" on each line to disable the default 50 elements limit:

    The purpose of the DynamicChildLimit="0" configuration entry is described here: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.navigation.portalsitemapprovider.dynamicchildlimit.aspx

    Hope it helps.


    Xue-Mei Chang
    • Marked as answer by Kalik Monday, January 11, 2010 8:20 PM
    Wednesday, January 6, 2010 7:15 AM
    Moderator
  • The reference posted by Xue-Mei Chang is good! 
    Interesting note in that reference:  "Showing a large number of items in the navigation menu is not useful and can have a negative impact on performance."

    Happy Coding, ~CodeHawk MCSD | MCTS [SharePoint Development]
    Wednesday, January 6, 2010 9:10 AM
  • Thank you Xue-Mei Chang for the information.  I agree with this having a negative impact on performance.  I have already recommended another solution to their problem.  Create an on page menu for all of the sites.

    Thanks again,
    Richard
    Monday, January 11, 2010 8:20 PM
  • If you are goint to use DynamicChildLimit it can happen (like in our environment), that nothing happens when you use value "0". We had to adpat it to a value greater thant we need, 0 didn't work for us.
    Monday, May 13, 2013 11:37 AM
  • You can also change the dynamic levels for the Global and Current Navigation in Site Settings, Navigation: Maximum number of dynamic items to show within this level of navigation:"20" your number here "100" for example.
    Monday, April 13, 2015 4:40 PM