- 締切済み
ASP.NET SiteMapPathコントロールで複数の階層
ASP.NET2.0で、SiteMapPathコントロールについての質問です。 ひとつのページが複数のページから遷移される場合に、サイトマップパスコントロールを使用して、階層表示を変えたいのですが、 以下のようにWeb.sitemapを書いたらUrlは一意でなければならないというエラーが発生します。 <siteMapNode url="Default.aspx" title="TOP" description="TOP"> <siteMapNode url="Default2.aspx" title="page2" description="page2"> <siteMapNode url="Default3.aspx" title="page3" description="page3" /> </siteMapNode> <siteMapNode url="Default3.aspx" title="page3" description="page3" /> </siteMapNode> 何か良い方法はないでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
そうですね 自作のユーザーコントロールなどで対処になるでしょう でも、遷移データの管理をどのようにするかが問題になりそうですね XML形式でViueStateに保存しながらでしょうか 私もやったことが無いので見当が付きません m(__)m Refererなどをコレクションするのかなぁ
- redfox63
- ベストアンサー率71% (1325/1856)
siteMapに遷移経路を表示する機能はないと思います あくまで Web.sitemapに書かれたデータを元にリンクなどを配置する機能のように思います そうなると XMLで表現できないノードは表示不可能ではないかと思います ノードのキーが URLのようです このキーの重複をXMLが認めないので無理だと思います
補足
なるほど。やはりそうですか。 そうなるとASP.NETの機能ではできなさそうですね。 遷移経路を表示する機能は自分で作成するしかないんですかね・・・
- redfox63
- ベストアンサー率71% (1325/1856)
サイトマップでどのように表示させたいのでしょう 複数表示させたい複数のノードの片方をダミーにして Response.Redirectなどで誘導するってのはダメでしょうか …
補足
上記のXmlの例ですと、TOPページからpage2へ行き、page2からpage3へ移動した場合には、 TOP>>page2>>page3 と表示したいです。 そして、TOPページからpage3へ移動した場合には、 TOP>>page3 と表示したいのです。 これは可能なのでしょうか?
お礼
ご回答ありがとうございました。 やはり自作するしかなさそうですね。 ちょっと考えてみます。 もしできたらまた書き込みます。