3

我一直在环顾四周,但找不到任何适合我的问题的东西。

我在 c# asp.net visual studio 2005 中执行此操作,我有一个母版页并从那里删除了 Page_Load 事件,因为我希望在除母版之外的页面中触发 Page_Load。因此,在母版页以外的页面之一中:

  • 在 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>

悬停和选定的所有 CSS 样式(例如:gtm_sel)都已定义并正常工作,因为当我绕过页面加载时,即使从 page1.aspx 到从那里调用它的母版页的 page_load 事件,例如:this.SetSelected( '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 回答