2

web.sitemap ファイルによって駆動される asp:Menu コントロールがあります。

メニューは例えばこんな感じ。

Fruit
- Apple
- Orange
- Strawberry

Color
- Blue
- Red
- Yellow

サイトマップでは、特定の果物は「果物」siteMapNode の子です (色についても同様です)。メニューは動的に設定されているため、果物と色は静的であり、特定の果物と色がポップアップ/フライアウト メニューに表示されます。親アイテムは分類目的のためだけです。「フルーツ」のページはありません。

「果物」と「色」がリンクされないようにするにはどうすればよいですか?

4

3 に答える 3

2

これを処理するためにイベントハンドラーを追加することになりました。それは本当に理想的ではありませんが、仕事はします。

<asp:Menu ID="MyMenu" runat="server" DataSourceID="MyDataSource" 
OnMenuItemDataBound="MyMenu_MenuItemDataBound">

...

protected void MyMenu_MenuItemDataBound(object sender, MenuEventArgs e)
{
    SiteMapNode node = (SiteMapNode)e.Item.DataItem;
    if (node.ChildNodes.Count != 0)
    {
        e.Item.Selectable = false;
    }
}
于 2010-09-24T00:29:30.903 に答える
0
<siteMapNode url="" title="Fruit"  description="">
  <siteMapNode url="~/Apple.aspx" title="Apple"/>
  <siteMapNode url="~/Orange.aspx" title="Orange"/>
  <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/>
</siteMapNode>

色のように賢い

于 2010-08-25T12:28:06.033 に答える
-1

次のように、siteMapNode から「url」を削除するだけです。

<siteMapNode title="Fruit"  description="">
  <siteMapNode url="~/Apple.aspx" title="Apple"/>
  <siteMapNode url="~/Orange.aspx" title="Orange"/>
  <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/>
</siteMapNode>
于 2014-05-17T21:28:16.080 に答える