类事件不会在ASP.NET Web应用程序中触发

时间:2014-06-06 15:31:53

标签: asp.net vb.net events

在ASP.NET Web应用程序中,类的事件根本不会触发。

它不会产生任何错误,但也不起作用。

到目前为止我尝试过:

  • 将类代码放在相同的aspx代码文件中,不起作用
  • 使用AddHandler在创建新事件后立即处理事件 实例 - 无法正常工作
  • 更改了顶部的AutoEvenFireup =“true” aspx页面,无法正常工作
  • 向aspx页面添加了Asynch =“true”,没有 工作

这是最简单的例子:

testEvent.aspx:

Public Class testEvent
    Inherits System.Web.UI.Page

    Public WithEvents TestClass As MyClassWithEvents

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        TestClass = New MyClassWithEvents


    End Sub

    Private Sub TestClass_SimpleEvent(txt As String) Handles TestClass.SimpleEvent

        Response.Write("Event fired from class: " + txt + "<br />")

    End Sub


End Class

MyClassWithEvents.vb:

Public Class MyClassWithEvents

    Public Event SimpleEvent(txt As String)

    Public Sub New()

        RaiseEvent SimpleEvent("Sub New() in Class")
        SomeMethod()

    End Sub

    Public Sub SomeMethod()

        RaiseEvent SimpleEvent("SomeMethod() called in Class")

    End Sub

End Class

1 个答案:

答案 0 :(得分:0)

当我在SomeMethod()事件中致电PreRender时:

Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
    Me.TestClass.SomeMethod()
End Sub

工作正常。对于要触发的事件,Load的生命周期中必须过早。