/ / ASP.Net Menüsteuerung, das das übergeordnete Menü nicht hervorhebt, wenn Untermenüelemente ausgewählt werden - css, asp.net, menu, menuitem, submenü

Das ASP.Net-Menüsteuerelement hebt das übergeordnete Menü nicht hervor, wenn Untermenüelemente ausgewählt werden - css, asp.net, menu, menuitem, submenu

Ich verwende die Sitemap-Navigation für das Menü. Die Seitennavigation funktioniert gut, aber das übergeordnete Menü wird beim Auswählen von Untermenüelementen nicht hervorgehoben. Der Code, den ich geschrieben habe, ist unten aufgeführt.

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />

<asp:Menu ID="Menu" runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal"
OnMenuItemDataBound="OnMenuItemDataBound">
<StaticMenuStyle BorderStyle="None" />
<staticselectedstyle backcolor="Green" borderstyle="Solid" bordercolor="Black" borderwidth="1"/>
<StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" BorderStyle="Solid"
BorderColor="White" BorderWidth="1px" />
<DynamicHoverStyle BackColor="#5E2433" ForeColor="White" />
<DynamicMenuStyle BorderColor="#666666" Width="155px" BackColor="#EFEDED" />
<DynamicSelectedStyle BackColor="#5D7B9D" />
<DynamicMenuItemStyle Width="155px" BorderColor="White" BorderStyle="Solid" BorderWidth="1px"
HorizontalPadding="5px" VerticalPadding="2px" />
<StaticHoverStyle BackColor="#5E2433" ForeColor="White" />
</asp:Menu>

In der master.cs-Seite ist

protected void OnMenuItemDataBound(object sender, MenuEventArgs e)
{
if (SiteMap.CurrentNode != null)
{
if (e.Item.Text == SiteMap.CurrentNode.Title)
{
if (e.Item.Parent != null)
{
e.Item.Parent.Selected = true;
}
else
{
e.Item.Selected = true;
}
}
}
}

Die Sitemap ist wie -

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

<siteMapNode url="" title=""  description="">
<siteMapNode url="" title="EMPLOYEES"  description="Employees Page">
<siteMapNode url ="" title="New Employee"  description=""></siteMapNode>
<siteMapNode url ="" title="Edit Details"  description=""></siteMapNode>
<siteMapNode url ="" title="Calender"  description=""></siteMapNode>
<siteMapNode url ="employees/Benefits.aspx" title="Benefits"  description="">
<siteMapNode url ="employees/Vehicle.aspx" title="Vehicle"  description=""></siteMapNode>
<siteMapNode url ="employees/Loan.aspx" title="Loan"  description=""></siteMapNode>
<siteMapNode url ="" title="Accomodation"  description=""></siteMapNode>
<siteMapNode url ="" title="Medical Insuarance"  description="">
<siteMapNode url ="" title="Annual"  description=""></siteMapNode>
<siteMapNode url ="" title="One-Off"  description=""></siteMapNode>
</siteMapNode>

</siteMapNode>
</siteMap>

Ich habe versucht, das übergeordnete Menü beim Auswählen eines Untermenüelements nicht hervorzuheben. Jede Hilfe wird sehr geschätzt.

Antworten:

1 für die Antwort № 1

Ihr Code ist korrekt. Anscheinend weist der Code nur dem ausgewählten Menüpunkt "ausgewählte" Klasse zu. Sie müssen Ihre eigene CSS schreiben, um das ausgewählte Element zu gestalten. Abgesehen davon ist der Code korrekt.

#Menu1 ul li a.selected{
border:1px solid blue;
background-color:blue !important;
color:white;
}

Ihr Code hat mir tatsächlich geholfen, mein "Auswahlproblem" zu lösen :)