ASP.NET 母板页动态改变菜单样式

ryfsoft 2011-05-06 11:47:18
为了方便,顶部和底部我做成了模板页,可是现在导航条每个菜单点击后要出现被点击的样式效果,代码如下:


<ul>
<li><a class="selected" href="Default.aspx" id="menu1"><strong>首页</strong> </a></li>
<li><a href="selected.aspx" id="menu2"><strong>开发</strong> </a></li>
<li><a href="tech.aspx" id="menu3"><strong>支持</strong> </a></li>
<li><a href="about.aspx" id="menu5"><strong>关于</strong></a></li>
</ul>




现在默认是首页,所以有个 class="selected" 样式,要是点击其他菜单后,class="selected" 就动态到哪个上面

我是母版页,怎么实现,谢谢啦

小弟不才,虚心求教!
...全文
296 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhuan2099 2012-10-11
  • 打赏
  • 举报
回复
解决了没?
fxy6781349 2011-05-06
  • 打赏
  • 举报
回复
用一个变量来存取当前访问的菜单名字呢
像这样来
<li><a href="/" class="<%=CurrentMenu=="首页"?"cu":"" %>"><%=CurrentMenu == "首页" ? "首    页" : "返回首页"%></a></li>
<li><a href="/Company/Index.aspx" class="<%=CurrentMenu=="招聘中心"?"cu":"" %>">招聘中心</a></li>
<li><a href="/Person/Index.aspx" class="<%=CurrentMenu=="求职中心"?"cu":"" %>">求职中心</a></li>
hwbox 2011-05-06
  • 打赏
  • 举报
回复
最简单但非常不oo的方法。

你可以在母版页的 pageload 事件中判断 当前请求的url。根据不同的url,生成了段js脚本用来控制前端页面的css。
  • 打赏
  • 举报
回复
从最起码的原理上看,你是每一次都重定向到新的页面,而不是使用UpdataPanel来动态修改局部(或者其它Ajax方法)。不得已只能自己设计将菜单的所有状态持久保留下来,然后再新的页面重新绘制。

当然,要想做为一个独立控件方法,那么你还不能将这个菜单状态的持久化设计为全局或者会话范畴的状态,而是要区分为单个菜单的状态。测试时要保证即使一个会话有两个页面上分别有两个菜单,其重定向到新的页面时也能各自准确保持各自的状态。

如果你们公司只是做几个网页,那么这种编程大大超出了能力要求,所以可以考虑放弃这种过分复杂的需求。只有真正做企业应用程序的人才有能力做这种软件。
yuxh81 2011-05-06
  • 打赏
  • 举报
回复
应该可以在母板页的 ContentPlaceHolder1_Init 事件中去检查
当前是哪个内容页面,根据这个再来用js来实现菜单的动态选中
pllmfzc 2011-05-06
  • 打赏
  • 举报
回复
可以直接在MENU控件上编辑啊,这是最简单的一种方法。
ryfsoft 2011-05-06
  • 打赏
  • 举报
回复
ascx 麻烦,我就是不想太多该代码,方便些,已经是用的母版页

[Quote=引用 12 楼 konghulu 的回复:]
ascx?
调用的时候传入属性,可以是序号。
在ascx的cs文件里获得这个序号,根据序号生成列表。这个比较麻烦。
可以把序号输出到前端,JS获得序号,操作dom,改变相应的样式。
[/Quote]
潮起潮落 2011-05-06
  • 打赏
  • 举报
回复
ascx?
调用的时候传入属性,可以是序号。
在ascx的cs文件里获得这个序号,根据序号生成列表。这个比较麻烦。
可以把序号输出到前端,JS获得序号,操作dom,改变相应的样式。
ryfsoft 2011-05-06
  • 打赏
  • 举报
回复
就是不给你

[Quote=引用 6 楼 zhaolong1987 的回复:]
我是来正积分的
[/Quote]
ycproc 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fxy6781349 的回复:]

用一个变量来存取当前访问的菜单名字呢
像这样来
<li><a href="/" class="<%=CurrentMenu=="首页"?"cu":"" %>"><%=CurrentMenu == "首页" ? "首&nbsp;&nbsp;&nbsp;&nbsp;页" : "返回首页"%></a></li>
<li><a href="/Company/Ind……
[/Quote]

用三元运算符动态的加载样式表是个好方法

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧