这个想法是为了一个菜单。我需要根据点击的顶部节点突出显示菜单的特定颜色。所以,如果我只需要用一种颜色突出显示它我可以说
<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");
}
}
}
答案 0 :(得分:0)
如果没有runat="server"
,您无法从代码中访问html标记。但是,您可以使用文字控件呈现整个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);
}