0

asp.netページにあるメニューがあります。ツリービューコントロールを使用してサイトメニューを表示しました。唯一の問題は、実際には何もしないルートノードがあることです。

現在、私のメニュー構造は次のとおりです。

-空のルートノード
I---ホーム
I---カレンダー
I---....

しかし、私は次のようにしたいと思います: -ホーム -カレンダー

-...。


したがって、基本的に、ユーザーがクリックしたり表示したりできない限り、ルートノードを削除または非表示にする必要があります...

これを行う簡単な方法はありますか?空の<siteMapNode>タグを削除しようとしましたが、エラーが発生します...

4

1 に答える 1

1

SiteMapDataSourceには、これを制御するのに役立つプロパティがあります。何かのようなもの:

<asp:SiteMapDataSource ID="_siteMapData" runat="server" ShowStartingNode="false" StartFromCurrentNode="true" />
<asp:TreeView ID="_tree" NodeWrap="true" ExpandDepth="1" DataSourceID="_siteMapData" runat="server"></asp:TreeView>

の値を変更するShowStartingNode必要があります。

コードビハインドからその値を変更することもできます。これにより、現在のノードに子があるかどうか(子がない、レベルが上がる)に基づいて初期ノードが変更されます。

SiteMapNode currNode = System.Web.SiteMap.CurrentNode;
_siteMapData.StartingNodeOffset = currNode != null && currNode.HasChildNodes ? 0 : -1;
于 2013-03-06T16:17:23.997 に答える