これが私の状況です。各行にネストされたカスタム ユーザー コントロール (UC1) を持つグリッドビュー (gridview1) があります。カスタム ユーザー コントロールには、ボタンがクリックされたときに発生する "TaskChanged" というカスタム パブリック イベントがあります。親ページ (default.aspx) で、ユーザー コントロールにアクセスしてイベント ハンドラーをアタッチしようとしましたが、失敗しました。これが私がそれをやろうとしている方法です。
親ページ:
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 はその下に波線を取得します)、ページを実行するとエラーがスローされます。友人がこれを行うことができたのを覚えていますが、彼は自分のユーザー コントロールをオブジェクトとしてキャストし、それにアクセスできました。私はそれを試してみましたが、うまくいきませんでした。
カスタム コントロールがイベントを発生させており、イベントをバブリングしていません。イベントをバブリングすることで機能させることができますが、イベント ハンドラーをコントロールにアタッチすることで実現したいと考えています。誰か助けて??