page_load в system.web.ui.page не вызывается - PullRequest
3 голосов
/ 21 декабря 2009

Я искал вокруг, но я не могу найти ни одной, которая подходит к моей проблеме.

Я делаю это в 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
    }
    

показанные коды предназначены для горизонтального одноуровневого главного меню где-то вверху страницы, и я хотел, чтобы выбранное меню выделялось после перезагрузки страницы, но page_load на page1.aspx, похоже, не вызывается!

Это часть меню на главной странице:

<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 для hover и selected (например, gtm_sel) определены и работают должным образом в том смысле, что когда я пропускаю загрузку страницы даже из page1.aspx в событие page_load главной страницы, вызывая ее оттуда, например: this .SetSelected ( 'ГТМ'); это работает как шарм

haywired.

1 Ответ

2 голосов
/ 21 декабря 2009

У вас есть AutoEventWireup="true" в директиве Page ...

<%@ Page Language="C#" AutoEventWireup="true"
    CodeFile="Default.aspx.cs" Inherits="_Default" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...