Solved

asp:Menu as tab control problem.

Posted on 2006-11-09
5
837 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
  • 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

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

AJAX ModalPopupExtender has a required property "TargetControlID" which may seem to be very confusing to new users. It means the server control that will be extended by the ModalPopup, for instance, if when you click a button, a ModalPopup displays,…
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

747 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now