3

私は周りを見回してきましたが、私の問題に適合するものは見つかりません。

私は 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'); それは魅力のように機能します

ぐちゃぐちゃ。

4

1 に答える 1

2

AutoEventWireup="true"Pageディレクティブにはありますか...

<%@ Page Language="C#" AutoEventWireup="true"
    CodeFile="Default.aspx.cs" Inherits="_Default" %>
于 2009-12-21T11:21:31.547 に答える