遷移に応じてパンくずリストを切替える
「?」と思ったのですが、Google先生に聞いたら速攻で教えてくれました。というわけで、メモメモ。
SiteMapPath
.NETのSiteMapPathコントロールとXML形式のhoge.sitemapを使うことで、Webページのナビゲーションリンクになるパンくずリストを作ることができる。SiteMapPathコントロールを.NETのマスターページに置けば、ページのヘッダ*1に表示するのも簡単。
.NET TIPS[ASP.NET]Webフォーム上でサイト・メニュー/サイト・パスを作成するには?[2.0のみ、C#、VB]
遷移に応じたパンくずリストの切替え
じゃあ、次のような階層構造のサイトではどうすればいいの?って話です。
孫の画面で、遷移に応じて「親 > 子1 > 孫」と「親 > 子2 > 孫」を切り替えるには、どうすればよいか。
1つのhoge.sitemapファイル内に記述するURLは、一意である必要がある。つまり、URLは一度しか記述できない。子1の子要素に孫を指定して、子2の子要素にも同じ孫を指定すると、エラーになる。子画面は、親画面をただ1つしか持つことができない。ゆえに、孫の画面で、遷移に応じて異なるパンくずリストを表示するには、複数の.sitemapファイルを用意する必要がある。
実装
- 1. 遷移元の親ページに置いたリンクやボタンのonclickメソッド内で、現在の画面を表す値をセッションに入れます。
- 2. マスターページのPageLoad内で、セッションの値を取得して、遷移元の画面を特定します。
- 3. 画面に応じて、SiteMapPathコントロールのプロパティにサイトマップファイルを割り当てます。
以上でOK!
*1:HTMLのhead要素のことではなく、単なる「ページの上部」の意。