SharePoint 2007 Web サイトのサブサイト間のカスタム ナビゲーションを可能にする asp.net UserControl を作成するように依頼されました。サイトは、さまざまなクラスのグループを持つ学期を持つ学校の構造を模倣しています。以下は、サイト構造の簡略版です。
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 ページに配置されます。その目的は、ユーザーが異なるクラス グループ間で同一のページに移動できるようにすることです。
EG たとえば、私が Semester1/Class Group 1/Class 1/Page2.aspx にいるとしましょう。UserControl を使用すると、Semester1 の他のクラスを選択できます。選択すると、[選択したクラス]/Page2.aspx に自動的に移動します (現在 Page2.aspx を使用しているため)。
今日まで、私は SiteMapProvider を使用したことがありません。これまでのところ、サイト構造をプログラムで調べ、デフォルトの CombinedNavSiteMapProvider PortalSiteMapProvider を使用して簡単なサイト マップをページに出力することしかできませんでした。必要だと思うのですが、どうすればよいかわかりません:
- ルート ノードが現在のページの親学期である部分的なサイト マップ データ構造を取得/構築します。これは、必要に応じて、コードに組み込まれた独自のデータ構造にすることができます。これをメニューコントロールにバインドしたい。さらに、ルート メニュー項目には、Semester1 の代わりに「クラスの変更」のようなカスタム テキストが必要です。
そこから、メニュー イベントを使用してナビゲーションを処理できると思います。Semester1/Class Group 1/Class 1/Page2.aspx にいる場合の UserControl のメニューの例:
Change Class
Class Group 1
Class 1
Class 2
Class Group 2
Class 3
Class 4
上記の箇条書きの項目を達成するにはどうすればよいですか?