我正在使用甲ChildClass用戶控制具有父類的鏈覆蓋的Page_Load,最終從繼承System.Web.UI.UserControl。控制不能在層次結構
public BasestClass : AnotherClassExtendingUserControl
{
private void Page_Load(object sender, EventArgs e)
{
// do some stuff
}
}
public BaseClass : BasestClass
{
// no Page_Load
}
兩個父類環比上漲,Page_Load中被標記私人。 「中間」類顯然不會覆蓋它,但我需要在用戶控件的Page_Load中添加一些內容。
public ChildClass : BaseClass
{
// think I need to override Page_Load here,
// but there is no acceptable method to override
}
我能做些什麼來進入ChildClass的Page_Load中?該控件中有一些控件需要操作,它們不存在於BaseClass或BasestClass中。
不完全正確。 'Page_Load'不是一個事件,它是'Load'事件的默認事件處理程序。我認爲同時使用OnLoad和Page_Load的重寫可能會導致混淆,特別是當一個類從ChildClass繼承而來時。事件處理程序默認情況下是自動連接的,而每次您重寫'OnLoad'時,必須明確調用'base.OnLoad(e)'。這只是我的2美分。 – mafue
@mafue:'OnLoad'是引發'Load'事件的頁面方法。在這種情況下,正確的方法是重寫事件提取器,而不是事件處理程序。在這裏看到更多的細節:http://msdn.microsoft.com/en-us/library/ms178472.aspx –
@mafue:另請參閱我的答案在這裏:http://stackoverflow.com/questions/7664969/aspnet -page-life-cycle-methods-vs-events –