我被要求創建一個asp.net UserControl,它允許在SharePoint 2007網站的子網站之間自定義導航。這些網站模仿了學校結構,每個學期都有不同的班級組。以下是網站結構的簡化版本:自定義SharePoint 2007子網站導航控件
Site Root
Search
Semester1
Class Group 1
Class 1
Page1.aspx
Page2.aspx
Class 2
Page1.aspx
Page2.aspx
Class Group 2
Class 3
Page1.aspx
Page2.aspx
Class 4
Page1.aspx
Page2.aspx
Semester2
Class Group 1
Class 1
Page1.aspx
Page2.aspx
Class 2
Page1.aspx
Page2.aspx
Class Group 2
Class 3
Page1.aspx
Page2.aspx
Class 4
Page1.aspx
Page2.aspx
Some Other Subsites
UserControl將放置在類的.aspx頁面上。目的是允許用戶瀏覽不同類別組之間的相同頁面。
E.G.假設我在Semester1/Class Group 1/Class 1/Page2.aspx上。 UserControl將允許我在Semester1下選擇任何其他類。選擇後,它會自動導航到[selected class] /Page2.aspx(因爲我目前在Page2.aspx上)。
在今天之前,我從未使用SiteMapProvider。到目前爲止,我只設法以編程方式遍歷網站結構,並使用默認的CombinedNavSiteMapProvider PortalSiteMapProvider將簡單的站點地圖打印到頁面。我想我需要,但我不知道如何做的是:
- 獲取/構建部分站點地圖數據結構,其中根節點是當前頁面的父學期。如果有必要,這可以是我自己的數據結構。我想將它綁定到菜單控件。此外,我希望根菜單項具有像「更改類」而不是Semester1的自定義文本。
從那裏,我想我可以使用菜單事件來處理導航。用戶控件的菜單的例子,如果我在Semester1 /類組1/1級/ Page2.aspx:
Change Class
Class Group 1
Class 1
Class 2
Class Group 2
Class 3
Class 4
如何可以完成上面的項目符號項目?