0

メニューのアイデアです。どのトップノードがクリックされたかに応じて、メニューを特定の色で強調表示する必要があります..したがって、1つの色で強調表示する必要がある場合は、

 <li <%# (Container.DataItem as FigLeafMenuItem).ItemSelected == "True" ? @" class=""MainMenuSelectedBlue""" : @" class=""""" %>>

しかし、サーバー側の情報に応じて色を変更する必要があります..最も近いものを以下に示します..特定のLIにアクセスしてクラスを追加するにはどうすればよいですか?

 protected void lvMainOuter_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        ListViewDataItem lvdi = (ListViewDataItem)e.Item;
        FigLeafMenuItem flmi  = (FigLeafMenuItem)lvdi.DataItem;

        if (flmi.Name == "About Us")
        {
            HtmlGenericControl hgc = (HtmlGenericControl)e.Item.FindControl("xxx");
            hgc.Attributes.Add("class", "MainMenuSelectedBlue");
        }
    }
}
4

1 に答える 1

0

がないとコード ビハインドから html タグにアクセスできませんrunat="server"liただし、リテラル コントロールを使用してタグ全体をレンダリングできます。

<asp:Literal id="MenuItemLiteral" runat="server" />

if (flmi.Name == "About Us")
{
  var literal = (Literal)e.Item.FindControl("MenuItemLiteral");
  literal.Text = string.format("<li class=\"{0}\">{1}</li>", DATA1, DATA2);
}
于 2012-11-28T22:59:41.410 に答える