這是我的情況。我有一個嵌套在每一行中的自定義用戶控件(UC1)的gridview(gridview1)。自定義用戶控件具有一個名爲「TaskChanged」的自定義公共事件,單擊按鈕時會引發該事件。在父頁面(default.aspx),我試圖訪問用戶控件來附加事件處理程序,但我不成功。以下是我想要做的事情。如何將事件處理程序附加到嵌套的自定義用戶控件? VB.net
在父頁面:
Protected Sub GridViewTasks_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridViewTasks.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'Get the User Control
Dim Uc As UserControl = e.Row.FindControl("TaskResourceAssignment")
'Attatch event handler
AddHandler Uc.TaskChanged, AddressOf Uc_OnTaskChanged
End If
End Sub
的問題是,在這條線:
AddHandler Uc.TaskChanged, AddressOf Uc_OnTaskChanged
它無法找到控制的「TaskChanged」事件(Uc.TaskChanged得到波浪線在它下面),並運行該頁面只會引發錯誤。我記得有一位朋友能夠做到這一點,但他將用戶控件作爲對象投入使用,並能夠訪問它。我已經嘗試過,沒有運氣。
自定義控件引發事件而不是冒泡事件。我可以通過冒泡事件來實現它,但我真的想通過將事件處理程序附加到控件來實現它。幫助任何人?
事件標有'Friend'或'Public'嗎?所以它可以在這裏訪問。 – OneFineDay
其標記爲Public: – Quinn
Public Event TaskChanged As System.EventHandler – Quinn