Page.Load проблема в ASP.NET 2.0
-
04-07-2019 - |
Вопрос
Я пытаюсь помочь другому программисту с помощью страницы Default.aspx с разделом кода, и, к сожалению, я немного растерялся.
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, мы хотим, чтобы его загрузка выполнялась до запуска события load на странице. Вероятно, есть очень простой ответ на этот вопрос, который мне не хватает.
Изменить: я забыл отметить, что мы пишем на VB, а не на C #, как многие из вас привыкли к ASP.
Решение
Вы должны иметь возможность переопределить OnLoad и сначала вызвать OnLoad базового класса, а затем ваш класс, например:
Версия C #
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// Do some stuff here
}
Версия VB
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
' Do some stuff here
End Sub
Другие советы
В VB это будет:
Private Sub page_load(ByVal sender As Object, ByVal e As System.Eventarts) Handles Me.Load
Mybase.Sub_OverheadClass_Load(e)
End Sub
Ваша страница по умолчанию должна наследовать 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
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