0

这个想法是为了一个菜单。我需要根据单击哪个顶部节点来突出显示菜单的特定颜色。所以如果我只需要用一种颜色突出显示它,我可以说

 <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

如果没有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 回答