[SharePoint 2013] Restore the Breadcrumb (Navigate Up) Navigation

Update: I have packaged this solution up in a SharePoint solution. You can get the packaged solution and the source code here: [SharePoint 2013] Restore the Breadcrumb (Navigate Up) Navigation Part 2.


SharePoint 2010 had a breadcrumb feature on the ribbon that would let a user navigate up the breadcrumb. In SharePoint 2013, this feature is hidden. In SharePoint 2013 the breadcrumb feature can be made visible again in at least two different ways: 1) via the Master Page -or- 2) via code.

Breadcrumb in SharePoint 2010:
NavigateUp2010

Breadcrumb made visible in SharePoint 2013:
NavigateUp2013

Using the Master Page

To make the breadcrumb visable by editing the Master Page, open the Master Page in SharePoint Designer. Edit the following block of code to remove display:none from the containing DIV and visible=false from the breadcrumb control.

Old Code:

<div class="ms-breadcrumb-dropdownBox" style="display:none;">
<SharePoint:AjaxDelta id="DeltaBreadcrumbDropdown" runat="server">
	<SharePoint:PopoutMenu
		Visible="false"
		runat="server"

New Code:

<div class="ms-breadcrumb-dropdownBox">
<SharePoint:AjaxDelta id="DeltaBreadcrumbDropdown" runat="server">
	<SharePoint:PopoutMenu
		runat="server"

Using Code

To make the breadcrumb visible on every page from code, I recommend using an AdditionalPageHead delegate control (see http://www.sharepointjohn.com/sharepoint-2010-programmatically-add-javascript-meta-tags-and-css-styles-to-the-header-of-every-page/). In the AdditionalPageHead user control, the following code will make the control visible as well as fix the icon not showing under certain themes:

protected override void CreateChildControls()
{
	var masterPage = this.Page.Master;
	var delta = masterPage.FindControl("DeltaBreadcrumbDropdown") as AjaxDelta;
	if (delta != null)
	{
		var breadcrumb = delta.FindControl("GlobalBreadCrumbNavPopout") as PopoutMenu;
		if (breadcrumb != null)
		{
			breadcrumb.Visible = true;
			breadcrumb.ThemeKey = "spcommon";
			breadcrumb.IconUrl = "/_layouts/15/images/spcommon.png";
			this.Controls.Add(new LiteralControl("<style type=\"text/css\">.ms-breadcrumb-dropdownBox { display: inline-block !important; }</script>"));
		}
	}
	base.CreateChildControls();
}

John Chapman

Hello, I'm John Chapman. I am a SharePoint Developer for Sitrion (formerly NewsGator) living in Denver, Colorado. I develop solutions using SharePoint and .NET, and I thrive on the challenge of writing code to overcome the impossible, annoying, or otherwise difficult obstacles.

More Posts - Website - Twitter - LinkedIn - Google Plus