Solved

asp:Menu as tab control problem.

Posted on 2006-11-09
5
844 Views
Last Modified: 2011-09-20
Hello,

I am force to make a tab control like menu to my asp.net website because of no available tab control shipped with VS studio 2005.

Im having problem when clicking one of the menu and launch the page contain. The Menu selected value are reset to default. what i like is to remember the selection i made so i have a proper back-ground color for the selected menu.

I have 4 pages:

MasterPage:   MasterPage.Master
UserControl:   TopMenu.ascx
HomePage:  Home.aspx
Another Page: OtherPage.aspx

Code Below:

"MasterPage.Master"

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage.master.cs" Inherits="MasterPage" %>
<%@ Register Src="CommonControls/TopMenu.ascx" TagName="TopMenu" TagPrefix="uc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>        
        <uc1:TopMenu id="TopMenu1" runat="server">
        </uc1:TopMenu></div>
    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>


"TopMenu.ascx"

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TopMenu.ascx.cs" Inherits="TopMenu" %>
<asp:Menu ID="Menu1" runat="server" Orientation="Horizontal" BackColor="#FFFBD6" DynamicHorizontalOffset="2" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#990000" StaticSubMenuIndent="10px">
    <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
    <DynamicHoverStyle BackColor="#990000" ForeColor="White" BorderWidth="0px" />
    <DynamicMenuStyle BackColor="#FFFBD6" BorderWidth="0px" />
    <StaticSelectedStyle BackColor="#FFCC66" BorderWidth="0px" />
    <DynamicSelectedStyle BackColor="#FFCC66" BorderWidth="0px" />
    <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" BorderWidth="0px" />
    <Items>
        <asp:MenuItem Text="Home" Value="Home" NavigateUrl="~/Home.aspx"></asp:MenuItem>
        <asp:MenuItem Text="Other Page" Value="Other Page" NavigateUrl="~/OtherPage.aspx"></asp:MenuItem>
    </Items>
    <StaticHoverStyle BackColor="#990000" ForeColor="White" />
</asp:Menu>

"Home.aspx"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="Home" MasterPageFile="~/MasterPage.Master" %>

<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server" ID="contentHome">
Home Page
</asp:Content>

"OtherPage.aspx"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OtherPage.aspx.cs" Inherits="OtherPage" MasterPageFile="~/MasterPage.Master" %>

<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" runat="server" ID="contentOtherPage">
Other Page
</asp:Content>

You can see above that when i click the menu item Home it will go to Home.aspx and Other Page will go to otherpage.aspx. Its ok and no problem. But the active selection of menu will be refresh and get back to default value because usercontrol will then again be called. Because of here i cannot get the feeling of tab control menu like of my website.

Please help. thanks













0
Comment
Question by:apmcph
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
5 Comments
 

Author Comment

by:apmcph
ID: 17911997
To follow up, i would like to do something like here in experts exchange menu that you will see above.
0
 
LVL 28

Accepted Solution

by:
mmarinov earned 500 total points
ID: 17913240
Hi apmcph,

hello because you are making post back every time the menu is rebound and looses its clicked item
an approach is to use this method
public void SelectMenu()
    {
        foreach (MenuItem item in Menu1.Items)
        {
            if (System.IO.Path.GetFileName(item.NavigateUrl) == System.IO.Path.GetFileName(this.Request.RawUrl))
                item.Selected = true;
        }
    }

and call it from Page_Load of the MasterPage

Cheers!
0
 

Author Comment

by:apmcph
ID: 17927949
mmarinov,

Thanks... I will try this next week. I was so tied up on meeting schedule.
Will get back to you..

thanks
0
 

Author Comment

by:apmcph
ID: 18073343
Hi mmarinov,

Sorry for very late reply..I was so tied up with tight schedules but as i have promised i will definitely try your solution and it really works.

Though i never really understand as of now how your solution works, i will try to understand this in the next days. The important is it is now working.

Hands up to you.



0
 

Author Comment

by:apmcph
ID: 18075111
Hi mmarinov,

How about if i want to maintain the selected item in my MainMenu when i click any page within that folder. Or to automatically select MainMenu Item when i go to a page under that folder.

Thanks


0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question