如何更改ASP.NET列表视图中特定<li>的类?</li>

时间:2012-11-28 20:48:49

标签: asp.net css listview

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

 <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");
        }
    }
}

1 个答案:

答案 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);
}