1

ASP.NET メニュー コントロールを使用しています。リンク 1 から 10 までが 1 つのサイトマップ ファイルにあり、リンク 11 から 20 までが別のサイトマップ ファイルにある、このようなメニューを表示したいと思います。

root
--link 1
(...)
--link 10
--link 11
(...)
--link 20

ただし、サイトマップ ファイルには、抑制できないように見えるルートが必要です。

何かご意見は?

-エドード

4

2 に答える 2

2

次のようにして、ルートノードを抑制できます。

SiteMapDataSource ds = new SiteMapDataSource();
ds.SiteMapProvider = "providername";
ds.ShowStartingNode = false;
TreeView1.DataSource = ds;
TreeView1.DataBind();

このメソッドを使用して、ツリービューのルートノードを非表示にします。

于 2009-05-11T17:28:42.947 に答える
1

ダミーのルートノードを追加してから、ASP.NETメニューコントロールをサブクラス化してダミーの「ルート」ノードを無視できない理由はありますか?

メニューに別のサイトマップを使用するようにSiteMapProviderに指示できるはずです。

私が持っている他の質問は、複数のサイトマップファイルを持つ目的は何ですか?これには正当な理由があると思いますが、何が起こっているのかを知ることで、理解しやすくなり、より良い解決策を考え出すことができます。

そうは言っても、私は自家製のメニューシステムを思いつくでしょう。フロントエンドでjQueryとsuperfishプラグインを使用し、C#を使用してバックエンドでサイトマップファイルを読み取り、メニュー構造を構築できます。

于 2008-09-19T12:16:20.840 に答える