【问题标题】:Class events don't fire in ASP.NET web application类事件不会在 ASP.NET Web 应用程序中触发
【发布时间】:2014-07-27 22:42:02
【问题描述】:

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

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

到目前为止我已经尝试过:

  • 把Class代码放在同一个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

【问题讨论】:

    标签: asp.net vb.net events


    【解决方案1】:

    当我在PreRender 事件中调用SomeMethod() 时:

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

    它工作正常。在 Load 的生命周期中必须太早才能触发事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 2012-10-29
      • 2018-04-13
      • 2021-10-26
      • 1970-01-01
      相关资源
      最近更新 更多