如何更改HTML菜单li属性vb

时间:2013-11-20 08:07:41

标签: html asp.net html-lists menuitem

我有一个包含主页,两个内容页面和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>

2 个答案:

答案 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");