I am new the asp.net so i will appreciate a full code answer.
I have a web site in asp.net and c# i added a menu to the site.master page it looks like this:
<asp:Menu ID="mainMenu" runat="server" autopostback="true">
<Items>
<asp:MenuItem Text="Home" Value="Home" ></asp:MenuItem>
<asp:MenuItem Text="Pipes" Value="Pipes"></asp:MenuItem>
<asp:MenuItem Text="View & Query" Value="View & Query"></asp:MenuItem>
<asp:MenuItem Text="API" Value="API"></asp:MenuItem>
</Items>
</asp:Menu>
I now need to add that when the user is on a specific page for example Pipes, then the right menuItem should have a different background color.
i can use a session variable but i am not sure how to do that.
Can any one please write for me a full example for this?
Thank you in advance
You won’t need to track the page using session variables, as when you select a menu item, asp.net kindly tracks the item you’ve selected and generates its own CSS class for you (in most cases). To get a better visual download firebug for Firefox and look at the HTML output, you’ll see they’ll have CSS styles attached such as “asp-net.menu selectedItem” for example, you then create a .selectedItem{} CSS class, and then it will pick up the style automatically.
However If I recall it can be a bit fiddly styling Microsoft controls, as if you check the source code out of the output, its not exactly HTML friendly.
If you want to style the Menu item using the Microsoft approach, go here http://msdn.microsoft.com/en-us/library/ms366731.aspx
However there is a library called CSSfriendly http://cssfriendly.codeplex.com/ that renders the control in pure HTML, which allows you to attach CSS classes much more easily. For example:
And so on and so forth. Theres good documentation out there for this, and its my preferred method for styling.
Amended your code with my explanations below.
Then in your CSS: