-1

我的应用程序有一个水平选项卡,其代码在主文件中。每个 aspx 页面都添加了 masterpagefile,因此水平选项卡出现在每个页面中。现在我有一个场景,如果我单击水平选项卡中的任何选项卡,特定选项卡名称必须更改颜色,其余选项卡将保持蓝色,即应用程序选项卡颜色。但由于代码在主文件中,不知道如何处理。我想在主文件中进行更改,但看起来我需要添加一些隐藏变量。有没有办法在每个 aspx 中添加 javascript 来做同样的事情?这是我在主文件中的代码:

        <div id="header">
    <ul id="navigation" title="Navigation" tabindex="200">
    <li><a href="Home.aspx">Home</a></li>
    <li><a href="NIITS.aspx">About NREPP</a>
        <ul>
        <li><a href="Contacts.aspx">Contacts</a></li>
        <li><a href="Search.aspx">Search</a></li>
        </ul>
    </li>
</div>

每个 aspx 文件中的页面标记,例如联系人文件如下:

<%@ Page Title="Contacts" Language="C#" MasterPageFile="~/NIITS.master" AutoEventWireup="true" CodeBehind="Contacts.aspx.cs" Inherits="Contacts" %>

我可以在这个 aspx 文件中编写什么 javascript,以便将 tabname(contacts) 更改为黑色。有什么建议么?

4

1 回答 1

1

您不需要使用 javascript 来实现这一点。

在服务器端运行元素,并在您的.aspx文件中,使用Master.FindControl(). 然后,您可以应用 css 类进行样式设置。

例如,在您的母版页中,您可以将Home导航链接行更改为:

<li><a id="navHome" runat="server" href="Home.aspx">Home</a></li>

然后在您的Home.aspx文件中,将以下内容添加到您的代码后面:

protected void Page_Init(){
    ((HtmlControl)Master.FindControl("navHome")).Attributes["class"] += " active"
}

这将为您的锚元素添加一个额外的active类,然后您可以对其进行样式设置:

#navigation a.active {
   font-weight:bold;
}
于 2012-09-05T15:59:31.753 回答