刚刚选择的菜单项的类。.它们只是链接.我是否应该以某种方式识别所单击内容的 ID,然后使用它以某种方式循环..?
所以我有一个包含菜单信息的分层数据源...我将其数据绑定到列表视图,并使用CSS将其格式化为菜单。一切都很好..现在下一步我似乎无法理解..
如何突出显示(设置)
这是我到目前为止得到的,所以任何正确方向的提示都是好的。
<asp:ListView ID="lvMainOuter" runat="server">
<LayoutTemplate>
<ul id="menunav" runat="server">
<asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li <%# (Container.DataItem as FigLeafMenuItem).ItemSelected == "true" ? @" class=""MainMenuSelected""" : @" class=""""" %>>
<asp:HyperLink ID="nodeLink" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>' NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
<asp:ListView ID="lvMainInner" DataSource="<%# (Container.DataItem as FigLeafMenuItem).Children %>" runat="server">
<LayoutTemplate>
<ul id="menunav" runat="server">
<asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<asp:HyperLink ID="nodeLink" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>' NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
</li>
</ItemTemplate>
</asp:ListView>
</li>
</ItemTemplate>
</asp:ListView>
public int SelectedMenuId { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
lvMainOuter.ItemDataBound += lvMainOuter_ItemDataBound;
lvMainOuter.DataSource = new FigLeafMenu().GetFigLeafTopMenu();
lvMainOuter.DataBind();
}
void lvMainOuter_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
//WHAT DO I DO NOW TO GET THE SELECTED ITEM AND ASSIGN IT A CLASS?
}
}
试试这个
<asp:ListView ID="lvMainInner" DataSource="<%# (Container.DataItem as FigLeafMenuItem).Children %>"
runat="server">
<LayoutTemplate>
<ul id="menunav" runat="server">
<asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<asp:HyperLink ID="nodeLink" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>'
NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
</li>
</ItemTemplate>
<SelectedItemTemplate>
<li>
<asp:HyperLink ID="nodeLink" CssClass="MyHighlightClass" runat="server" Text='<%# (Container.DataItem as FigLeafMenuItem).Name %>'
NavigateUrl='<%# (Container.DataItem as FigLeafMenuItem).Url %>' />
</li>
</SelectedItemTemplate>
</asp:ListView>
或者您可以使用代码隐藏...
lvMainInner.SelectedIndexChanged += (o, args) =>
{
//You can do whatever here
};
在您的超链接标记中,您可以将 CssClass 设置为基于某些语句的条件语句,对吗?