利用js做的下拉菜单

#nav {
  list
-style-type: none; 
  font
-size:14px;
}

#nav a {
 display: block; 

 text
-align:center;
}

#nav a:link  {
 
 text-decoration:none;
}
#nav a:visited  {
 
text-decoration:none;
}
#nav a:hover  {

 text
-decoration:none;
}

#nav li {
 
float: left; 
}
#nav li a:hover{

}
#nav li ul 
{
    top:149px;

    list
-style-type:none;text-align:left;    
    left: 
-999em; width: 180px; position: absolute; 
}
#nav li ul li{
    
float: left; 
    width: 180px;
    background: #5AA428; 
}


#nav li ul a{
    display: block;
    width: 150px;
    text
-align:left;
    padding
-left:10px;
}

#nav li ul a:link  {
    text
-decoration:none;
}
#nav li ul a:visited  {
    text
-decoration:none;
}
#nav li ul a:hover  {
    text
-decoration:none;font-weight:normal;
    background:#F6F6F6;
}

#nav li:hover ul {
    left: auto;
}
#nav li.sfhover ul {
    left: auto;
}
#content {
    clear: left; 
}

</style>
    <script type="text/javascript"><!--        //--><![CDATA[//><!--
        function menuFix() {
            
var sfEls = document.getElementById("nav").getElementsByTagName("li");
            
for (var i = 0; i < sfEls.length; i++) {
                sfEls[i].onmouseover 
= function () {
                    
this.className += (this.className.length > 0 ? " " : ""+ "sfhover";
                }
                sfEls[i].onMouseDown 
= function () {
                    
this.className += (this.className.length > 0 ? " " : ""+ "sfhover";
                }
                sfEls[i].onMouseUp 
= function () {
                    
this.className += (this.className.length > 0 ? " " : ""+ "sfhover";
                }
                sfEls[i].onmouseout 
= function () {
                    
this.className = this.className.replace(new RegExp("( ?|^)sfhover\\b"),

"");
                }
            }
        }
        window.onload 
= menuFix;

        
//--><!]]></script>

 

静态menu 前台code:

<ul id="nav">
 
<li ><a  href="/Default.aspx"><span>Home</span></a></li>
  
<li ><a  href="/Account/Default.aspx"><span>My Account</span></a>
    
<ul>
    
<li><href="/Account/Default.aspx">Default</a></li>
    
<li><href="/Account/ChangePassword.aspx">ChangePassword</a></li>
   
</ul></li>
    
<li><href="/PMail/Default.aspx">Private Mail</a>
        
<ul>
            
<li><href="/PMail/SendMail.aspx">Send Mail</a></li>
            
<li><href="/PMail/Inbox.aspx">InBox</a></li>
            
<li><href="/PMail/SendBox.aspx">Sendbox</a></li>
        
</ul>
    
</li>

</ul>  

动态menu 前台code

<asp:Repeater ID="rptTopMenu" runat="server" 
    onitemdatabound
="rptTopMenu_ItemDataBound">
    
<HeaderTemplate>
        
<ul id="nav">
    
</HeaderTemplate>
    
<ItemTemplate>
        
<li ><a  href="<%# Eval("MenuUrl") %>"><span><%Eval("MenuTitle"%></span></a>
            
<asp:Repeater ID="rptSubMenu" runat="server">
                
<HeaderTemplate>
                    
<ul>
                
</HeaderTemplate>
                
<ItemTemplate>
                    
<li><href="<%# Eval("MenuUrl") %>"><%Eval("MenuTitle"%></a></li>
                
</ItemTemplate>
                
<FooterTemplate>
                    
</ul>
                
</FooterTemplate>
            
</asp:Repeater>
        
</li>
    
</ItemTemplate>
    
<FooterTemplate>
        
</ul>
    
</FooterTemplate> 

</ asp:Repeater>


 动态menu 后台code

/// <summary>
        
/// Load Top Menu.
        
/// </summary>
        private void LoadTopMenu()
        {
            _MemberRoles 
= Roles.GetRolesForUser(UserName);

            MemberService memberService 
= new MemberService();
            ReadOnlyCollection
<GoldnexMenu> goldnexMenu = memberService.LoadTopMenuList(_MemberRoles);

            List
<GoldnexMenu> list = new List<GoldnexMenu>();

            
for (int i = 0; i < goldnexMenu.Count; i++)
            {
                
string[] allowUsers = goldnexMenu[i].AllowUsers.Split(',');

                
if (allowUsers.Contains("*"))
                {
                    list.Add(goldnexMenu[i]);
                }
                
else
                {
                    
for (int j = 0; j < _MemberRoles.Length; j++)
                    {
                        
if (allowUsers.Contains(_MemberRoles[j]))
                        {
                            list.Add(goldnexMenu[i]);
                            
break;
                        }
                    }
                }
                                
            }
            rptTopMenu.DataSource 
= list;
            rptTopMenu.DataBind();
        }

        
/// <summary>
        
/// Current UserName
        
/// </summary>
        public string UserName
        {
            
get 
            {
                
return _UserName;
            }
            
set
            {
                _UserName 
= value;
            }
        }

        
/// <summary>
        
/// bind sub menu
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        protected void rptTopMenu_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rptSubMenu 
= (Repeater)e.Item.FindControl("rptSubMenu");
                GoldnexMenu goldnexMenu 
= (GoldnexMenu)e.Item.DataItem;

                
int topID = goldnexMenu.MenuID;

                MemberService memberService 
= new MemberService();
                ReadOnlyCollection
<GoldnexMenu> subMenuList = memberService.LoadSubMenuList(_MemberRoles,topID);
                rptSubMenu.DataSource 
= subMenuList;
                rptSubMenu.DataBind();
            }

         }  

       

posted on 2011-02-28 14:19  blair0807  阅读(631)  评论(0编辑  收藏  举报