asp.net事件处理程序没有触发

时间:2012-04-01 23:26:45

标签: asp.net vb.net events

我一直在寻找解决方案几个小时,现在无法找到解决方案。

情景:

  • 我有一个母版基类(称为basemaster)
  • 我的所有母版页都继承自basemaster
  • basemaster定义一个事件' Public Event HandleClickEvent As EventHandler'
  • 我有一个名为master1的主页
  • master1定义了一个事件处理程序' Public Shadows Event HandleClickEvent As EventHandler'
  • master1具有名为usr1
  • 的用户控件
  • usr1有一个按钮,单击时会引发事件ButtonClicked
  • 我有一个使用master1
  • 的页面(thePage)
  • 该页面有一个按钮点击事件处理程序,它注册如下:' AddHandler Master.HandleClickEvent,AddressOf HandleTheClick'
  • master1的代码如下:

    受保护的子Usr1_ButtonClicked(ByVal sender As Object,ByVal e As System.EventArgs)处理Usr1.ButtonClicked     RaiseEvent HandleClickEvent(发件人,e) End Sub

  • 当页面加载时,我看到它在master1上注册处理程序

  • 单击按钮时,会触发Usr1_ButtonClicked并逐步执行RaiseEvent,但永远不会访问该页面上的HandleClickEvent。

我觉得我做的事情很愚蠢。我将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

主页类上的事件是否需要是实际的事件处理程序?您应该能够使它成为一个公共方法,并从您的页面(或用户控件)事件处理程序访问它,如下所示:

Page.Master.MyPublicMasterPageMethod()

要从您的母版页调用内容页面上的方法,您可以使用VB的CallByName方法:http://msdn.microsoft.com/en-us/library/22x2chfx.aspx