ASP.NET メニュー コントロールを使用しています。リンク 1 から 10 までが 1 つのサイトマップ ファイルにあり、リンク 11 から 20 までが別のサイトマップ ファイルにある、このようなメニューを表示したいと思います。
root
--link 1
(...)
--link 10
--link 11
(...)
--link 20
ただし、サイトマップ ファイルには、抑制できないように見えるルートが必要です。
何かご意見は?
-エドード
次のようにして、ルートノードを抑制できます。
SiteMapDataSource ds = new SiteMapDataSource();
ds.SiteMapProvider = "providername";
ds.ShowStartingNode = false;
TreeView1.DataSource = ds;
TreeView1.DataBind();
このメソッドを使用して、ツリービューのルートノードを非表示にします。
ダミーのルートノードを追加してから、ASP.NETメニューコントロールをサブクラス化してダミーの「ルート」ノードを無視できない理由はありますか?
メニューに別のサイトマップを使用するようにSiteMapProviderに指示できるはずです。
私が持っている他の質問は、複数のサイトマップファイルを持つ目的は何ですか?これには正当な理由があると思いますが、何が起こっているのかを知ることで、理解しやすくなり、より良い解決策を考え出すことができます。
そうは言っても、私は自家製のメニューシステムを思いつくでしょう。フロントエンドでjQueryとsuperfishプラグインを使用し、C#を使用してバックエンドでサイトマップファイルを読み取り、メニュー構造を構築できます。