如何在ASP.NET后面的代码中连接ImageButton的ClickI()事件

时间:2013-09-30 15:40:21

标签: asp.net vb.net

我在自定义控件中有一个ImageButton实例变量。关于如何简单地为它的点击事件设置它的事件处理程序,我有点不稳定。来自C#,我有点困惑,因为这是在VB.NET中。

剪断:

Dim ctrlCloseImage As ImageButton = New ImageButton()
    With ctrlCloseImage
        .ID = "imgClose"
        .ImageUrl = "~/Web/Images/close.gif"
        .ToolTip = "Close"
        .CssClass = "popup_close_img"
        'This is where I left off
        AddHandler ctrlCloseImage.Click, AddressOf testSub(ctrlCloseImage, ??)
    End With
Me._ctrlCloseImage = ctrlCloseImage

然后:

Protected Sub testSub(ByVal Sender As Object, ByVal e As ImageClickEventArgs)
    Me.Page.Response.Write("Yay, you clicked the image button!")
End Sub

感谢您提供任何帮助,如果我遗漏任何重要的代码片段,请告知我们。再一次,我希望这能解决服务器端问题,我对这里的javascript函数不感兴趣。

3 个答案:

答案 0 :(得分:6)

您只需要添加委托:

AddHandler ctrlCloseImage.Click, AddressOf testSub 

由于此处未触发事件,因此无法传递参数。

但是,如果您不需要动态创建控件(通常这是不必要的),您可以在aspx上注册事件或使用Handles子句(而不是C#):

Protected Sub testSub(ByVal Sender As Object, ByVal e As ImageClickEventArgs) _
    Handles ctrlCloseImage.Click
    Me.Page.Response.Write("Yay, you clicked the image button!")
End Sub

答案 1 :(得分:0)

您需要为click事件分配一个处理程序:

AddHandler ctrlCloseImage.Click, AddressOf testSub

这会为Click控件分配地址testSub

的处理程序

答案 2 :(得分:0)

这应该可以解决问题(只需在Address Of之后输入方法的名称):

AddHandler ctrlCloseImage.Click, AddressOf testSub