1.利用第三方控件:DevExpress.Web.v8.3 Navbar

2.利用jquery cookies 记忆功能克服母板页页面跳转,无法显示刷新前点击的菜单。
要下载 jquery lib  and cookies plugin to use;
a.准备dev web.dll,data.dll,放入GAC。  c:\windows\assembely
b.write to web.config
<SafeControl Assembly="DevExpress.Web.v8.3, Version=8.3.2.0, Culture=neutral, PublicKeyToken=5377c8e3b72b4073" Namespace="DevExpress.Web.ASPxNavBar" TypeName="*" Safe="True" />
  <SafeControl Assembly="DevExpress.Data.v8.3, Version=8.3.2.0, Culture=neutral, PublicKeyToken=5377c8e3b72b4073" Namespace="DevExpress.Data" TypeName="*" Safe="True" />
c.在v4.master page 写入:
<%@ Register Assembly="DevExpress.Web.v8.3, Version=8.3.2.0, Culture=neutral, PublicKeyToken=5377c8e3b72b4073" Namespace="DevExpress.Web.ASPxNavBar" TagPrefix="dxnb" %>
d.在 <Sharepoint:SPNavigationManager 下的<SharePoint:UIVersionedContent UIVersion="4" runat="server"> <ContentTemplate>
加入:
<dxnb:ASPxNavBar id="QuickLaunchNavBar33" runat="server" DataSourceID="QuickLaunchSiteMap" AllowSelectItem="True" EnableAnimation="True">
          <ClientSideEvents Init="function(s, e) {
    ASPxNavBar_Init(s, e)
}" ExpandedChanged="function(s, e) {
    ASPxNavBar_ExpandedChanged(s, e);
}" ItemClick="function(s, e) {
    ASPxNavBar_ItemClick(s,e);
}" HeaderClick="function(s, e) {
   ASPxNavBar_HeaderClick(s,e);
}" />
         </dxnb:ASPxNavBar>
其中引用的js可以放在body最下面:
<script type="text/javascript"><!--

    var cookie_nameGroup = "myicoNavbarGroupIndex"; 
      var cookie_nameItem = "myicoNavbarItemIndex"; 
      var options = {path: "/", expires: 10};   //定义路径和过期时间
function ASPxNavBar_Init(s, e) {
   
var tempNavBarGroupIndex=$.cookie(cookie_nameGroup);   //Request("yourClickGroupIndex",window.location.href)
      var tempNavItemIndex= $.cookie(cookie_nameItem);       //Request("yourClickNavItemIndex",window.location.href)
    
 
 
       //s.CollapseAll();
if(tempNavBarGroupIndex==""||tempNavBarGroupIndex==null)
      {
      s.CollapseAll();
        return ;
       }
   
for (var i = 0; i < s.GetGroupCount(); i++)
            {
               if (i == tempNavBarGroupIndex) 
              {
                s.SetActiveGroup(i); 
               // s.GetGroup(i).SetExpanded(true);
               if(tempNavItemIndex!=null||tempNavItemIndex=="")
               {
                s.SetSelectedItem(s.GetGroup(i).GetItem(tempNavItemIndex));
               
                }
               // s.GetGroup(i).GetItem(tempNavItemIndex).SetEnabled(true);
              }
              else
              {
                 s.GetGroup(i).SetExpanded(false);
               }
            }

           
           
  // $.cookie(cookie_nameGroup, null, options);  //清空cookie_name
 //$.cookie(cookie_nameItem, null, options);  //清空cookie_name
       
    }
 

    function  ASPxNavBar_HeaderClick(s,e)
    {
  
   var myNavbarGroupIndex;
  
  $.cookie(cookie_nameGroup, null, options);  //清空cookie_name
  $.cookie(cookie_nameItem, null, options);  //清空cookie_name
  
           if(e.group!=null)
           {  
               myNavbarGroupIndex=e.group.index;
            
                for (var m = 0; m < s.GetGroupCount(); m++)
                {
                   if (m == myNavbarGroupIndex) 
                    { 
                      // var CurrentNavBarItem=s.GetGroup(myNavbarGroupIndex).GetItem(0);
                      
                        //alert(CurrentNavBarItem);
                     
                         $.cookie(cookie_nameGroup,myNavbarGroupIndex, options); //保存
                        
                          //  window.alert(window.document.cookie);
                         //  $.cookie(cookie_nameItem,CurrentNavBarItem, options); //保存

                         
                    }
                 }  
           }  
    
    }
   
 

    function  ASPxNavBar_ItemClick(s,e)
    {    
   
 
 
    $.cookie(cookie_nameGroup, null, options);  //清空cookie_name
   $.cookie(cookie_nameItem, null, options);  //清空cookie_name

           var myNavbarGroupIndex;
           var myNavbarItemIndex;
           if(e.item!=null)
           {  
               myNavbarGroupIndex=e.item.group.index;
               myNavbarItemIndex=e.item.index;
              
            
                for (var m = 0; m < s.GetGroupCount(); m++)
                {
                   if (m == myNavbarGroupIndex) 
                    { 
                   
                       $.cookie(cookie_nameGroup,myNavbarGroupIndex, options); //保存
                       $.cookie(cookie_nameItem,myNavbarItemIndex, options); //保存
                   
                 
                    }
                 }  
           }  
    
         
         
       
    }
function ASPxNavBar_ExpandedChanged(s, e)
     {
        if (e.group.GetExpanded() == true)
        {
           
         
                 for(var i = 0; i < s.GetGroupCount(); i++)
                 {
                  if(i == e.group.index) continue;
                s.GetGroup(i).SetExpanded(false);
               }
          
}
       
       
   

    }
   

// --></script>
作者:johnny
出处:http://www.cnblogs.com/sunjunlin

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/gaoxuzhao/archive/2011/10/10/2205079.html

Jquery cookies 记忆菜单相关推荐

  1. 近20个绚丽实用的jQuery/CSS3侧边栏菜单(转载)

    http://developer.51cto.com/art/201510/493530.htm 近20个绚丽实用的jQuery/CSS3侧边栏菜单 jQuery作为一款主流的JavaScript前端 ...

  2. 折叠式菜单 html,JQuery实现折叠式菜单的详细代码

    两种风格: 1:点菜单项,每个子菜单项都可显示 30秦甜甜_实训13-2_2_180701802230_18计算机2班 * { padding: 0; margin: 0; list-style: n ...

  3. jQuery 分类导航菜单条点击变色

    JQuery 分类导航菜单条点击变色,当点击导航菜单则当前点击选中导航菜单变色其它还原,依次类推. <script type="text/javascript" src=&q ...

  4. css3+jQuery制作导航菜单(带动画效果)

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>css ...

  5. jquery.cookies使用

    jquery.cookies 是一个插件,首先调用插件<script src="js/jquery.cookies.js"></script> 然后再JS中 ...

  6. 15个精心挑选的 jQuery 下拉菜单制作教程

    下拉菜单是网站导航常用的表现形式之一,能够呈现更多的导航内容.如果网站能够设计出有吸引力的网站导航,将会吸引更多的用户去浏览网站的内容.今天本文就为大家挑选了25个非常好的 jQuery 下拉菜单制作 ...

  7. 炫酷实用的jQuery插件 涵盖菜单、按钮、图片

    新的一周开始了,今天我们要为大家分享一些全新的jQuery插件和HTML5/CSS3应用,这些jQuery插件不仅非常炫酷,而且还挺实用,这次的分享包含jQuery菜单.CSS3按钮已经多种图片特效, ...

  8. html5 tab菜单切换页面,11个常用的jQuery TAB切换菜单源码及制作教程

    11个常用的jQuery TAB切换菜单源码及制作教程 Sponsor TAB切换式菜单可以方便为我们减少很多网页布局空间,而且用jQuery的话可以加入一些动画效果,比如渐变,向左右滑动等,提升一定 ...

  9. html上下滚动切换顶端tab,jQuery实现Tab菜单滚动切换的方法

    本文实例讲述了jQuery实现Tab菜单滚动切换的方法.分享给大家供大家参考.具体如下: 这是一款jQuery实现让你的Tab菜单滚动的代码,先运行一下看看效果咋样?是不是超不错,让你的网页变得灵动起 ...

  10. 雷林鹏分享:jQuery EasyUI 树形菜单 - 创建带复选框的树形菜单

    jQuery EasyUI 树形菜单 - 创建带复选框的树形菜单 easyui 的树(Tree)插件允许您创建一个复选框树.如果您点击一个节点的复选框,这个点击的节点信息将向上和向下继承.例如:点击 ...

最新文章

  1. 【公测中】阿里云发布国内首个大数据双活容灾服务,满足高要求大数据灾备场景...
  2. 打开SQL Developer时,提示缺少快捷方式
  3. ANNOTATION PROCESSING 101 by Hannes Dorfmann — 10 Jan 2015
  4. sand.A java_java中volatile关键字的含义(转)
  5. hihoCoder #1468 : 2-SAT·hihoCoder新春晚会(2-SAT 输出字典序最小的方案)
  6. react路由按需加载方法
  7. matlab中结构体的定义,matlab中怎么定义结构体啊 !!!
  8. 六、DMSP/OLS夜间灯光数据之GDP空间化的反演
  9. FastDFS同ip同机器迁移存储位置
  10. 中国石油进口数据简单统计
  11. Word serach(Medium)
  12. Do You Even Need Attention? A Stack of Feed-Forward Layers Does Surprisingly Well on ImageNet
  13. Linux中tar和scp
  14. 传智健康 第12章_PDF报表生成_JasperReports
  15. kali中rarcrack爆破rar压缩包密码
  16. Java使用aspose批量将PDF转为word
  17. 代驾小程序开发有哪些功能
  18. 第一次总结:填涂颜色
  19. 常数乘以无穷大等于多少_请教一个数学问题:无穷大乘以无穷小等于多少?
  20. hadoop+zookeeper+Hbase+spark安装部署总结

热门文章

  1. 混日子的老程序员感受结对编程的威力【工作效率狂提高】
  2. 洛谷P3709 大爷的字符串题(莫队)
  3. Perl中的执行上下文
  4. 《VMware Virtual SAN权威指南》一2.2.2 VSAN Ready Nodes
  5. schema约束和引入
  6. springMVC对简单对象、Set、List、Map的数据绑定和常见问题(三)
  7. eclipse 3.x中热部署WEB程序TOMCAT配置
  8. ADO.NET入门教程(六) 谈谈Command对象与数据检索
  9. 使用windows 7有感
  10. 电脑硬件知识大扫盲:主板知识大全