如何创建在派生页面的加载事件后触发的基页事件?

时间:2010-06-30 18:40:42

标签: asp.net event-handling page-lifecycle

如何在基页类中创建一个新事件,该事件在所有派生页面触发其加载事件后强制触发之前任何控件都会触发其加载事件。

以下代码在派生页面的加载事件之前触发事件。我希望它在派生页面的加载事件之后但在所有控件加载事件之前触发事件:

基类:

Public Event FirstLoad(ByVal sender As Object, ByVal e As System.EventArgs)

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles   Me.Load
    If Not IsPostBack Then
        RaiseEvent FirstLoad(sender, e)
    End If
End Sub

派生类:

Private Sub Page_FirstLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.FirstLoad

    'Stuff here happens before controls load but only on first page loads'

End Sub

1 个答案:

答案 0 :(得分:1)

我通过覆盖基页的OnLoad方法并在该调用中按照惯例在基础的OnLoad方法中正常工作,然后在所有加载发生后引发您希望触发的事件。

基类:

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
    MyBase.OnLoad(e)
    If Not IsPostBack Then
        RaiseEvent FirstLoad(sender, e)
    End If
End Sub