2008-10-23 4 views
3

Я пытаюсь помочь другому программисту со страницей Default.aspx с разделом кода, и, к сожалению, я немного потерял.Проблема с page.Load в ASP.NET 2.0

Partial Class _Default 
Inherits OverheadClass 
'A bunch of global variables here' 

Private Sub page_load(ByVal sender As Object, ByVal e As System.Eventarts) Handles Me.Load 
'Function goes here' 

И в OverheadClass мы имеем

Public Sub Sub_OverheadClass_Load(ByVal sender As Object, ByVal e as System.EventArgs) Handles MyClass.Load 

Нужный эффект, когда OverheadClass наследуется, мы хотим, чтобы его нагрузка для запуска перед событием нагрузки на прогонов страниц. Наверное, очень простой ответ на этот вопрос, который мне не хватает.

Редактировать: Я забыл отметить, что мы пишем в VB, а не C#, поскольку многие из вас используются для ASP.

ответ

10

Вы должны быть в состоянии отменить OnLoad и вызвать OnLoad базового класса, а затем ваш класс, например:

C# Version

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 

    // Do some stuff here 
} 

VB Version

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) 

    MyBase.OnLoad(e) 

    ' Do some stuff here 

End Sub 
+0

Это абсолютно правильный ответ, так как _Default.page_load не отменяет OverheadClass.Sub_OverheadClass_Load. Другой вариант может состоять в том, чтобы OverheadClass.Sub_OverheadClass_Load повторно поднять событие, но я думаю, что это вызовет побочные эффекты NASTY. – 2008-10-23 15:37:41

3

В ВБ это будет:

Private Sub page_load(ByVal sender As Object, ByVal e As System.Eventarts) Handles Me.Load 
    Mybase.Sub_OverheadClass_Load(e) 
End Sub 
0

Ваша страница по умолчанию должен наследовать OverheadClass

Partial Public Class _Default 
     Inherits OverheadClass 

     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
      'Do some page stuff' 
     End Sub 
    End Class 

И OverheadClass должен унаследовать System.Web.UI.Page

Public Class OverheadClass 
    Inherits System.Web.UI.Page 
    Public Sub Sub_OverheadClass_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyClass.Load 
     'Do some base stuff' 
    End Sub 
End Class 
0
Partial Class OverheadClass 
    Inherits System.Web.UI.Page 

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) 
     MyBase.OnLoad(e) 
    End Sub 
End Class 



Partial Class _Default 
    Inherits OverheadClass 

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) 
     MyBase.OnLoad(e) 
    End Sub 
End Class