-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。助言がありますか?

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 に答える