In this article we will be seeing how to add or remove the heading and links from the Quick Launch Navigation in SharePoint 2010.
Add a new custom heading to the Quick Launch Navigation
SPNavigationNode class accepts the following properties when we are creating a new heading.
a. Display Name(Required)
b. URL(Required)
c. External Link [True/False] (optional) – Specifies whether the link is internal (item in SharePoint) or external (another website)
SPNavigationNodeCollection nodeColl = web.Navigation.QuickLaunch;
SPNavigationNode heading1 = new SPNavigationNode("My Articles","");
nodeColl.AddAsFirst(heading1);
SPNavigationNode heading2 = new SPNavigationNode("My Blogs", "");
nodeColl.AddAsLast(heading2);
Add a new Navigation Links to the custom heading in the Quick Launch Navigation
SPNavigationNodeCollection nodeColl = web.Navigation.QuickLaunch;
foreach (SPNavigationNode heading in nodeColl)
{
if (heading.Title == "My Articles")
{
SPNavigationNode link1 = new SPNavigationNode("Articles","http://www.csharpcorner.com/", true);
heading.Children.AddAsFirst(link1);
}
if (heading.Title == "My Blogs")
{
SPList list = web.Lists.TryGetList("Blogs");
SPNavigationNode link2 = web.Navigation.GetNodeByUrl(list.DefaultViewUrl);
if (link2 != null)
{
link2 = new SPNavigationNode(list.Title, list.DefaultViewUrl);
heading.Children.AddAsFirst(link2);
}
}
}
How to delete the link from the Quick Launch:
Using C#
using (SPSite site = new SPSite("http://serverName:1111/sites/SPSiteDataQuery/"))
{
using (SPWeb web = site.RootWeb)
{
SPNavigationNodeCollection nodeColl = web.Navigation.QuickLaunch;
foreach (SPNavigationNode heading in nodeColl)
{
foreach (SPNavigationNode links in heading.Children)
{
if (links.Title == "cl1")
{
links.Delete();
}
}
}
}
}
Using PowerShell
$webURL="http://serverName:1111/sites/SPSiteDataQuery/"
$web=Get-SPWeb $webURL
$navigationNodeColl=$web.Navigation.QuickLaunch
$heading = $navigationNodeColl | where { $_.Title -eq "Libraries" }
$link = $heading.Children | where { $_.Title -eq "Shared Documents" }
$link.Delete()
How to delete the heading from the Quick Launch:
Using C#
SPNavigationNodeCollection nodeColl = web.Navigation.QuickLaunch;
foreach (SPNavigationNode heading in nodeColl)
{
if (heading.Title == "Libraries")
{
heading.Delete();
}
}
Using PowerShell
$webURL="http://serverName:1111/sites/SPSiteDataQuery/"
$web=Get-SPWeb $webURL
$navigationNodeColl=$web.Navigation.QuickLaunch
$heading = $navigationNodeColl | where { $_.Title -eq "Libraries" }
$heading.Delete()
Comments