在母版页中有个<ul>,多个使用该母版页的网页想实现该<ul>的li的颜色发生对应变化,该如何做呢
解决方案 »
- img 标签如何去掉无用的属性
- datalist里有一个按钮,点击按钮时弹出一个隐藏的div,div里边会绑定一个Gridview显示信息,可是隐藏的div显示不出来
- 填充DataTable打勾和返回DataTable打勾,各是什么意思,谢谢
- 大家共同讨论一下,多谢
- 做过新闻采集(用正则表达式)的帮个忙,问下。。。。
- asp.net中呼出选择文件夹对话框的的问题.
- 有关js和.net的两个问题(二)
- 在DataGrid中绑定一个imagebutton,为什么在datagrid的OnItemCommand中得不到imagebutton的commandname
- 请问大家在面试时都是穿的什么衣服啊,是不是都穿西装啊?
- 谁知道session或cookie结束或超时时会触发什么事件
- 急急急,智能手机安装什么播放器可以播放flv视频文件
- ASP.NET(c#)我想按行读取文本框内容,为什么找不到.Lines属性?
如:<div class="a">
<div class="b"></div>
</div>
如果b中不存在a中的样式,也会呈现a的样式。原因就是a做为父,b做为子。b继承a的原因。
1.在母版(假设类名为XXXMaster)cs中公开一个UlCssClass属性,
页面中<ul class="<%=this.CssClass%>">...<ul>
在各个子页的Page_Load中指定(this.Master as XXXMaster).UlCssClass="各颜色对应的样式"不过这类东西现在都习惯在加载页面时,让js来完成,服务端输出html就行了
http://www.cnblogs.com/insus/archive/2012/09/25/2700939.html相似参考(不确定要求)
http://www.cnblogs.com/insus/archive/2013/03/20/2970561.html
在模板页上判断当前页面是什么,然后对ul赋上对应的class
/// <summary>
///MenuComplex 的摘要说明
/// </summary>
public class MenuComplex
{
public MenuComplex()
{
//
//TODO: 在此处添加构造函数逻辑
//
} /// <summary>
/// 头部当前菜单样式
/// </summary>
public enum HeadMenuClass
{
index,
about,
services,
products,
newlist,
contact
}}用户控件head.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="head.ascx.cs" Inherits="control_head" %>
<div id="header">
<div id="logo">
<a href="index.html"><img src="images/logo.jpg" alt="" /></a>
</div>
<%=OutMenuHTML%>
</div>
using System;public partial class control_head : System.Web.UI.UserControl
{
public string OutMenuHTML = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
System.Text.StringBuilder strb = new System.Text.StringBuilder();
strb.AppendLine("<ul>");
strb.AppendLine("<li" + (NowMenu.ToString() == "index" ? " class=\"selected\"" : "") + "><a href=\"index.html\"><span>首页</span></a></li>");
strb.AppendLine("<li" + (NowMenu.ToString() == "about" ? " class=\"selected\"" : "") + "><a href=\"about.html\"><span>关于我们</span></a></li>");
strb.AppendLine("<li" + (NowMenu.ToString() == "services" ? " class=\"selected\"" : "") + "><a href=\"services.html\"><span>服务与支持</span></a></li>");
strb.AppendLine("<li" + (NowMenu.ToString() == "products" ? " class=\"selected\"" : "") + "><a href=\"products.html\"><span>产品展示</span></a></li>");
strb.AppendLine("<li" + (NowMenu.ToString() == "newlist" ? " class=\"selected\"" : "") + "><a href=\"newlist.html\"><span>新闻中心</span></a></li>");
strb.AppendLine("<li" + (NowMenu.ToString() == "contact" ? " class=\"selected\"" : "") + "><a href=\"contact.html\"><span>联系我们</span></a></li>");
strb.AppendLine("</ul>");
OutMenuHTML = strb.ToString();
} private MenuComplex.HeadMenuClass _nowmenu = MenuComplex.HeadMenuClass.index;
public MenuComplex.HeadMenuClass NowMenu
{
get { return _nowmenu; }
set { _nowmenu = value; }
}
}
下面我们在不同的页面使用这个用户控件(先注册一下):
<%@ Register Src="~/control/head.ascx" TagName="head" TagPrefix="UC" %>
使用:
<UC:head ID="Head1" runat="server" NowMenu="index" />
只需要变动NowMenu属性即可。
当然了,你用js获取url,然后分析一样可以用addClass去设置,不过对于重写的url情况你就会很难办的