2011-02-02 47 views
1

我在這個網站有一個名爲MySite 的網站我有一個名爲Resources的文檔庫和兩個名爲site1和site2的子網站。如何在sharepoint 2010的topnavbar中獲取網站節點?

在我的網站上我有一個頂部的導航欄鏈接: MySite |資源| Site1 | Site2

當我嘗試獲取導航節點時,我只獲得其中一個,那就是Resources(我想獲取site1和site2,以便我可以修改它們)。我如何獲得所有節點,無論它是文檔庫還是子網站?

碼我用:

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

label1.Text = nodes; 

爲什麼我只能得到資源的節點?

編輯 我可以添加一個適當的鏈接到父站點與

newWeb.ParentWeb.Navigation.TopNavigationBar.AddAsLast(新SPNavigationNode(newSiteName,newSiteName + 「/pages/home.aspx」)) ;

這現在將讓我到維基,因爲子網站繼承導航鏈接將是相同的。但是,通過這個鏈接,我得到了兩個鏈接到wiki,一個與上面的代碼一起工作,一個被破壞,所以我嘗試以類似的方式刪除那個鏈接,以添加正確的鏈接。我希望儘管會有更方便的方法。

+0

什麼用戶帳戶正在運行代碼?它是否有權查看子網站?你可以嘗試提升上下文。 – djeeg 2011-02-02 06:18:09

+0

網站集管理員。如果我提升了上下文,你認爲我不僅會得到庫節點,還會得到子節點的節點?更新我的帖子 – Nick 2011-02-02 06:39:35

回答

1

我覺得資源| Site1 | Site2是網站集。要使用下面的代碼獲得所有的網站集:

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

你的所有網站集中資源,站點1,站點2

相關問題