2016-08-09 101 views
1

Ich verwende die Sitemap-Navigation für das Menü. Die Seitennavigation funktioniert gut für mich, aber das übergeordnete Menü wird nicht hervorgehoben, wenn Untermenüpunkte ausgewählt werden. Der Code, den ich geschrieben habe, wird erwähnt, unter-ASP.Net Menüsteuerung hebt das übergeordnete Menü bei der Auswahl der Untermenüpunkte nicht hervor

<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> 

Im master.cs Seite Code 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 versucht habe, aber nicht kann das Elternmenü bei der Auswahl eines Untermenüs hervorheben. Jede Hilfe wird sehr geschätzt.

Antwort

1

Ihr Code ist korrekt. Offensichtlich weist der Code dem gewählten Menüpunkt nur die ausgewählte Klasse zu. Sie müssen Ihr eigenes CSS schreiben, um das ausgewählte Element zu stylen. Ansonsten ist der Code korrekt.

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

Ihr Code tatsächlich half mir lösen 'Auswahl' Problem :)