Afs*_*bbi 1 c# asp.net overriding pageload
我有一个名为PageBase继承自ASP.NET 的类Page.我想要做的东西PageBase的Page_Load.我的应用程序中的所有页面都在其上完成了逻辑Page_Load.我正在考虑一种方式,Page_Load无论是在页面PageBase中还是Page_Load在页面中都可以运行.可能吗?
是的,这是可能的.只需在构造函数中附加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.
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是它的工作原理.
Load是声明的公共事件,System.Web.UI.Page其中继承在PageBase类中.由于这是一个事件,您可以在事件上附加多个处理程序,每当Load引发事件时都会调用/执行它们.在PageBase类中,我们将事件处理程序例程附加到Load事件.这是更好的方法,而不是继承OnLoad保护的例程,您需要显式调用基本版本.当创建/实例化实际的Page对象时,首先创建基类对象,然后实例化子类,因此当构造PageBase对象时,事件处理程序附加到Load事件,每当Page对象触发时都会调用它.加载事件.
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |