我有一个名为PageBase
从 ASP.NET 继承的类Page
。PageBase
我想在's做点什么Page_Load
。我的应用程序中的所有页面都在其Page_Load
. 我正在考虑一种无需在页面中覆盖即可运行的方式和其他Page_Load
页面。有可能吗?PageBase
Page_Load
问问题
2571 次
1 回答
7
是的,这是可能的。只需在构造函数中附加 Page_Load 处理程序。这就是你的做法。
/// <summary>
/// Your PageBase class.
/// </summary>
public class PageBase : System.Web.UI.Page
{
/// <summary>
/// Initializes a new instance of the Page class.
/// </summary>
public Page()
{
this.Load += new EventHandler(this.Page_Load);
}
/// <summary>
/// Your Page Load
/// </summary>
/// <param name="sender">sender as object</param>
/// <param name="e">Event arguments</param>
private void Page_Load(object sender, EventArgs e)
{
try
{
}
catch
{
//handle the situation gracefully.
}
}
}
编辑
这是它的工作原理。
Load
是一个声明的公共事件System.Web.UI.Page
,在 PageBase 类中按原样继承。由于这是一个事件,您可以在事件上附加尽可能多的处理程序,每当Load
引发事件时,它们中的每一个都将被调用/执行。在PageBase
该类中,我们将一个事件处理程序例程附加到 Load 事件。这是更好的方法,而不是继承需要显式调用基本版本的 OnLoad 受保护例程。当实际的 Page 对象被创建/实例化时,首先创建基类对象,然后实例化子类,所以当 PageBase 对象被构造时,事件处理程序被附加到 Load 事件上,每当 Page 对象触发时都会调用该事件加载事件。
于 2010-07-07T06:04:07.297 回答