我在自定义控件中有一个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函数不感兴趣。
答案 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