Jquery cookies 记忆菜单

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 />

</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>