私は周りを見回してきましたが、私の問題に適合するものは見つかりません。
私は c# asp.net Visual Studio 2005 でこれを行っています。マスター ページがあり、そこから Page_Load イベントを削除しました。マスター以外のページで Page_Load を起動したかったからです。したがって、マスターページ以外のページの1つで:
page1.aspx:
public partial class page1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { (this.Master as IMasterPage).SetSelected("gtm"); } }
masterpage.cs で:
public partial class Master : System.Web.UI.MasterPage, IMasterPage { #region ImasterPage Members public void SetSelected(string name) { switch (name) { case "gtm": this.gtm.CssClass = "gtm_sel"; break; default: break; } } #endregion }
表示されているコードは、ページの上部にある水平の単一レベルのメイン メニュー用であり、ページのリロード後に選択したメニューを強調表示したかったのですが、page1.aspx の page_load が呼び出されていないようです!
これは、マスターページのメニューの一部です。
<div id="menu" class=''>
<ul>
<li><asp:HyperLink ID="com" CssClass="gtm" runat="server" NavigateUrl="~/page1.aspx"><span>Courses</span></asp:HyperLink></li>
<li><asp:HyperLink ID="tbm" CssClass="tbm" runat="server" NavigateUrl="~/page2.aspx"><span>Team Building</span></asp:HyperLink></li>
<li><asp:HyperLink ID="ptm" CssClass="ptm" runat="server" NavigateUrl="~/page3.aspx"><span>Personal Training</span></asp:HyperLink></li>
<li><asp:HyperLink ID="atm" CssClass="atm" runat="server" NavigateUrl="~/page4.aspx"><span>Adventure Tours</span></asp:HyperLink></li>
<li><asp:HyperLink ID="gtm" CssClass="stm" runat="server" NavigateUrl="~/groupTraining.aspx"><span>Group Training</span></asp:HyperLink></li>
</ul>
</div>
ホバーと選択 (例: gtm_sel) のすべての css スタイルが定義され、適切に機能しています。 'gtm'); それは魅力のように機能します
ぐちゃぐちゃ。