首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么使页面刷新后保存保持Ul菜单展开 asp.net

2013-01-08 
怎样使页面刷新后保存保持Ul菜单展开 asp.net我把左边的菜单写成了用户自定义控件,然后放到母版页里面去,

怎样使页面刷新后保存保持Ul菜单展开 asp.net
我把左边的菜单写成了用户自定义控件,然后放到母版页里面去,
当点击子节点,显示相关数据在右边,同时页面会刷新(整个母版页都刷新了) 
刷新后,子菜单收起来了,我需要它还是展开的。我用什么方法可以使得菜单在刷新后,仍然保持展开状态?
我不是使用的treeview,而是使用的Repeater。而子菜单连接到右边的数据,是通过
<ahref="<%=Dir %>default.aspx?id=<%#Eval("ItemCategoryID") %>">XXX</a>



[解决办法]
用js +css样式可以实现
[解决办法]
if(!IsPostBack)
   rpt.DataBind();

最好用Ajax做局部刷新
[解决办法]
用Cookie吧
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<style type="text/css">
body {font:12px Tahoma, sans-serif;color:#4D4D4D;margin:0px; text-align:center}
a{color:#4D4D4D;text-decoration:none}
a:hover{color:#AD0000;text-decoration:none}
#menu {width:160px;margin:0px;padding:0px;text-align:left;list-style:none;border:1px solid #B0D4ED}
#menu .item {margin:0px;padding:0px;list-style:none; text-align:center}
a.title:link,a.title:visited,a.title:hover {display:block;height:30px;line-height:30px; margin-top:1px;background:#E1F2FD;border-top:1px solid #B0D4ED;border-bottom:1px solid #B0D4ED;font-weight:bold;}
#menu .item ul {margin:0;list-style:none;display:none;text-align:center}
#menu .item ul li {height:24px;line-height:22px;border-bottom:1px solid #BFDBEE;margin:0 20px}
</style>
<script language="javascript" type="text/javascript">
// --- 获取ClassName
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var j = 0; j < elem.length; j++) {
var classes = elem[j].className;
if (myclass.test(classes)) retnode.push(elem[j]);
}
return retnode;
}
// --- 隐藏所有
function HideAll() {
var items = document.getElementsByClassName("optiton");
for (var j=0; j<items.length; j++) {
items[j].style.display = "none";
}
}
// --- 设置cookie
function setCookie(sName,sValue,expireHours) {
var cookieString = sName + "=" + escape(sValue);
//;判断是否设置过期时间
if (expireHours>0) {
 var date = new Date();
 date.setTime(date.getTime + expireHours * 3600 * 1000);
 cookieString = cookieString + "; expire=" + date.toGMTString();
}
document.cookie = cookieString;
}
//--- 获取cookie
function getCookie(sName) {
  var aCookie = document.cookie.split("; ");
  for (var j=0; j < aCookie.length; j++){
var aCrumb = aCookie[j].split("=");
if (escape(sName) == aCrumb[0])
  return unescape(aCrumb[1]);
  }
  return null;
}
window.onload = function() {


var show_item = "opt_1";
if (getCookie("show_item") != null) {
 show_item= "opt_" + getCookie("show_item");
}
document.getElementById(show_item).style.display = "block";
var items = document.getElementsByClassName("title");
for (var j=0; j<items.length; j++) {
items[j].onclick = function() {
var o = document.getElementById("opt_" + this.name);
if (o.style.display != "block") {
HideAll();
o.style.display = "block";
setCookie("show_item",this.name);
}
else {
o.style.display = "none";
}
}
}
}
</script>
</head>
<body>
<ul id="menu">
<li class="item"><a href="javascript:void(0)" class="title" name="1"><asp:Label ID="Label1" runat="server"  CssClass="Normal" resourcekey="lnkNormalSetting"></asp:Label></a>
  <ul id="opt_1" class="optiton">
  <li><asp:HyperLink id="HyperLink1" runat="server" CssClass="Normal" resourcekey="lnkNormalSetting"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink2" runat="server" CssClass="Normal" resourcekey="lnkVisitControl"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink3" runat="server" CssClass="Normal" resourcekey="lnkTimeRange"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink4" runat="server" CssClass="Normal" resourcekey="lnkPostTable"></asp:HyperLink></li>
  </ul>
</li>
<li class="item"><a href="javascript:void(0)" class="title" name="2"><asp:Label ID="Label2" runat="server"  CssClass="Normal" resourcekey="lnkNormalSetting"></asp:Label></a>
  <ul id="opt_2" class="optiton">
   <li><asp:HyperLink id="HyperLink5" runat="server" CssClass="Normal" resourcekey="lnkNormalSetting"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink6" runat="server" CssClass="Normal" resourcekey="lnkVisitControl"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink7" runat="server" CssClass="Normal" resourcekey="lnkTimeRange"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink8" runat="server" CssClass="Normal" resourcekey="lnkPostTable"></asp:HyperLink></li>
  </ul>
</li>
<li class="item"><a href="javascript:void(0)" class="title" name="3"><asp:Label ID="Label3" runat="server"  CssClass="Normal" resourcekey="lnkTimeRange"></asp:Label></a>
  <ul id="opt_3" class="optiton">
   <li><asp:HyperLink id="HyperLink9" runat="server" CssClass="Normal" resourcekey="lnkNormalSetting"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink10" runat="server" CssClass="Normal" resourcekey="lnkVisitControl"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink11" runat="server" CssClass="Normal" resourcekey="lnkTimeRange"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink12" runat="server" CssClass="Normal" resourcekey="lnkPostTable"></asp:HyperLink></li>


  </ul>
</li>
<li class="item"><a href="javascript:void(0)" class="title" name="4"><asp:Label ID="Label4" runat="server"  CssClass="Normal" resourcekey="lnkVisitControl"></asp:Label></a>
  <ul id="opt_4" class="optiton">
   <li><asp:HyperLink id="HyperLink13" runat="server" CssClass="Normal" resourcekey="lnkNormalSetting"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink14" runat="server" CssClass="Normal" resourcekey="lnkVisitControl"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink15" runat="server" CssClass="Normal" resourcekey="lnkTimeRange"></asp:HyperLink></li>
  <li><asp:HyperLink id="HyperLink16" runat="server" CssClass="Normal" resourcekey="lnkPostTable"></asp:HyperLink></li>
  </ul>
</li>
</ul>
</body>
</html>
[解决办法]
HTML中UL Li部分用repeater绑定实现 其他的参考代码就能做了
[解决办法]
不应该啊,<ul id="opt_1" class="optiton"> UL的ID你怎么写的?发代码上来看看
[解决办法]
添加参数
在CSS里面判断参数模拟状态展开 
[解决办法]
呵呵  我倒是觉得挺方便的,几个js函数  一个repeater而已;

实在不行可以看看jquery的treeview及cookie
http://jquery.bassistance.de/treeview/demo/

热点排行