【问题标题】:asp.net event handler not firingasp.net 事件处理程序未触发
【发布时间】:2012-04-15 16:33:39
【问题描述】:

我已经为此寻找了几个小时的解决方案,但找不到解决方案。

情景:

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

    Protected Sub Usr1_ButtonClicked(ByVal sender As Object, ByVal e As System.EventArgs) 处理 Usr1.ButtonClicked RaiseEvent HandleClickEvent(sender, e) 结束子

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

  • 单击按钮时,会触发 Usr1_ButtonClicked,我会逐步执行 RaiseEvent,但从未到达页面上的 HandleClickEvent。

我觉得我在做一些愚蠢的事情。我将不胜感激。

谢谢!

【问题讨论】:

    标签: asp.net vb.net events


    【解决方案1】:

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

    Page.Master.MyPublicMasterPageMethod()
    

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

    【讨论】:

    • 好的...我不确定我明白你的意思。母版页按钮触发的事件如何调用页面上的处理程序?抱歉……有点失落。
    • 查看我的更新答案,以便在另一个方向(从母版页到内容页)拨打电话
    • 谢谢。我会试一试......但我仍然很好奇为什么事件处理程序没有触发......就像我错过了什么一样。
    猜你喜欢
    • 2011-02-07
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多