如何在sharepoint 2010的topnavbar中获取站点节点?

时间:2011-02-02 05:00:53

标签: sharepoint sharepoint-2010

我有一个名为MySite的网站 在这个站点中,我有一个名为Resources的文档库和两个名为site1和site2的子站点。

在MySite上我有一个顶部导航栏,上面有链接: MySite |资源| Site1 |站点2

当我尝试获取导航节点时,我只得到其中一个,那就是资源(我想获取site1和site2以便我可以修改它们)。如何获取所有节点,无论它是文档库还是子网站?

我使用的代码:

SPNavigationNodeCollection topNavBar = parentID.Navigation.TopNavigationBar;
string nodes ="";
foreach (SPNavigationNode node in topNavBar)
{
nodes += node.Url.ToString();
}

label1.Text = nodes;

为什么我只获取Resources节点?

修改 我可以使用

添加到父网站的正确链接

newWeb.ParentWeb.Navigation.TopNavigationBar.AddAsLast(new SPNavigationNode(newSiteName,newSiteName +“/ pages / home.aspx”));

这将使我进入维基,并且由于子网站继承导航,链接将在它们上面相同。然而,有了这个,我得到两个链接到维基,一个使用上面的代码和一个已经破坏,所以我尝试删除那个以类似于我添加正确的方式。我希望尽管有更方便的方法。

1 个答案:

答案 0 :(得分:1)

我认为资源| Site1 | Site2 是网站集。使用以下代码获取所有网站集:

SPSite site = new SPSite("siteURL");
SPWeb web = site.OpenWeb();
SPSiteCollection coll = web.webs;

您将获得所有网站集资源,Site1,Site2