Я искал вокруг, но я не могу найти ни одной, которая подходит к моей проблеме.
Я делаю это в 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.