我有一个包含主页,两个内容页面和CSS的网页,我希望左侧菜单在出现任何页面时获得class =“current”
我尝试了每个例子和你所有的答案,比如findcontrol和其他人,但从不工作。
可能是我有问题,因为我是asp.net的新手
问候
CSS表
#templatemo_left_content {
float: left;
background: #0a2035 url("/images/templatemo_left_bg.jpg") top no-repeat;
width: 358px;
display: inline;
}
/ *菜单* /
.templatemo_menu {
float: right;
width: 211px;
margin: 20px 65px 35px 0;
padding: 0;
display: inline;
}
.templatemo_menu ul {
list-style-type: none;
padding: 0;
margin: 0;
width: 211px;
}
.templatemo_menu li a {
display: block;
height: 27px;
padding: 7px 0 0 50px;
margin: 5px 0 0 0;
color: #fff;
font-weight: bold;
background: url("/images/templatemo_menu.gif") no-repeat;
text-decoration:none;
}
.templatemo_menu li a:hover, .templatemo_menu li .current {
background: url(images/templatemo_menu_current.gif) no-repeat;
text-decoration:none;
color: #00FFFF;
}
/ *菜单结束* /
母版页html
<div id="templatemo_left_content">
<div class="templatemo_menu">
<ul style="height: 265px">
<li id="Home" runat="server" ><a href="Default.aspx" >Home</a></li>
<li id="Products" runat="server" ><a href="#" >Products</a></li>
<li id="Services" runat="server" ><a href="#" >Services</a></li>
<li id="About" runat="server" ><a href="About.aspx" >About</a></li>
<li id="Company" runat="server"><a href="#">About Our Company</a></li>
<li id="Contact" runat="server" ><a href="#">Contact Us</a></li>
<li id="Customers" runat="server"><a href="#l">Our Customers</a></li>
</ul>
</div>
</div>
答案 0 :(得分:1)
所以,问了一个问题并自己发现答案 这就是发生的事情
感谢您阅读和参与
当你以这种方式创建李
时使用它<li id="Home" runat="server" ><a href="Default.aspx" >Home</a></li>
并使用以下代码
Dim li As System.Web.UI.HtmlControls.HtmlGenericControl
li = Page.Master.FindControl("Home")
li.Attributes.Add("class", "current")
vb正在调用home并且它将更改类但是由于某种原因菜单背景没有改变,因为它位于标记a而不是标记中Li 所以玩主html调整和放置id =“Menu_Home”(不能使用Home,因为文本具有相同的原因,我将其命名为Menu_Home)内部标记a不在Li中,也是runat =“server”将被转移到标记a 它将如下:
<div class="templatemo_menu">
<ul style="height: 235px">
<li><a href="Home.aspx" id="Menu_Home" runat="server" >Home</a></li>
<li><a href="#" id="Menu_Products" runat="server" >Products</a></li>
<li><a href="#" id="Menu_Services" runat="server" >Services</a></li>
<li ><a href="#" id="Menu_Customers" runat="server">About Our Company</a></li>
<li><a href="About.aspx" id="Menu_About" runat="server" >About</a></li>
<li ><a href="#" id="Menu_Contact" runat="server">Contact Us</a></li>
</ul>
</div>
并在master load事件中添加以下代码:
Dim thisURL As String = Me.Page.[GetType]().Name.ToString()
Select Case thisURL
Case "home_aspx"
Menu_Home.Attributes.Add("class", "current")
Exit Select
Case "about_aspx"
Menu_About.Attributes.Add("class", "current")
Exit Select
Case "logout_aspx"
Menu_Products.Attributes.Add("class", "current")
Exit Select
End Select
每件事情都会好起来
享受
答案 1 :(得分:0)
您是在主人或当前页面上寻找控件吗?
尝试将其添加到Default.aspx中的Page_Load:
HtmlGenericControl li = (HtmlGenericControl)Master.FindControl("Home");
li.Attributes.Add("class", "current");