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:
Breadcrumb made visible in SharePoint 2013:
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:
[xml]<div class="ms-breadcrumb-dropdownBox" style="display:none;">
<SharePoint:AjaxDelta id="DeltaBreadcrumbDropdown" runat="server">
<SharePoint:PopoutMenu
Visible="false"
runat="server"[/xml]
New Code:
[xml]<div class="ms-breadcrumb-dropdownBox">
<SharePoint:AjaxDelta id="DeltaBreadcrumbDropdown" runat="server">
<SharePoint:PopoutMenu
runat="server"[/xml]
Using Code
To make the breadcrumb visible on every page from code, I recommend using an AdditionalPageHead delegate control (see https://www.johnchapman.net/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:
[csharp]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();
}[/csharp]
Updated the sample code to make the PreRender an Event Handler and to attach the LiteralControl for the CSS to the page header.
Do either of these methods work for Foundation 2013? So far I haven’t been successful with the Master Page approach. I’ve come across a couple of other blog posts that seem to indicate that this option doesn’t work in Foundation. If it doesn’t work in Foundation, I’ll stop beating my head against a wall. ;-)
Thanks!
Does anyone know how to make this horizontal? The client I am building this for is not interested in the drop down breadcrumbs and I cannot figure out for the life of me how to get this to work in 2013.
Thanks!
The built-in breadcrumb control doesn’t offer this ability. You could try to customize it with some JavaScript and CSS, but that would probably get messy. Your other alternative is to create your own breadcrumb control. Here are a few resources that you might look at: http://www.solidq.com/sqj/Pages/Collaboration/Optimize-SharePoint-2010-with-Breadcrumb-Navigation.aspx, http://stackoverflow.com/questions/7515381/sharepoint-2010-custom-breadcrumb-change-only-html, and http://msreddysharepoint.blogspot.com/2013/01/custom-breadcrumb-navigation-in.html.
the code solution works, this line is weird though: this.Controls.Add(new LiteralControl(“.ms-breadcrumb-dropdownBox { display: inline-block !important; }”)); … the commas are wrong and the closing caption shoud be style (this causes it to work only at some sites)… repaired version:
this.Controls.Add(new LiteralControl(“.ms-breadcrumb-dropdownBox { display: inline-block !important; }”));
the code solution works, this line is weird though: this.Controls.Add(new LiteralControl(“<style type=”text/css”>.ms-breadcrumb-dropdownBox { display: inline-block !important; }</script>”)); … the commas are wrong and the closing caption shoud be style (this causes it to work only at some sites)… repaired version:
this.Controls.Add(new LiteralControl(“<style type=’text/css’>.ms-breadcrumb-dropdownBox { display: inline-block !important; }</style>”));
Thanks for this solution. I just thinking about the same, but I was too lazy to try it out. :)
Hi,
Check out FlyView for SharePoint (2007/10/13 and Online), we created to address the annoying SharePoint navigation, its a browser extension that creates a dynamic menu with breadcrumb for SharePoint intranet sites, no service side deployment required, you can download for Chrome here http://bit.ly/flyview, and for firefox http://bit.ly/flyviewff.
PS: It took us more than a year to gradually evolve our ideas that we would play with after-hours and what we have got today in the form of Flyview we believe is now a very useful tool for SharePoint users and admins. Further development is in progress with new features are being added on regular basis.
updated link for firefox http://bit.ly/flyviewfirefox