ASP.NET フォームにプレースホルダーがあり、複数のソースからテーブルを作成するカスタム クラスがあり、そのカスタム クラス ボタンがテーブルに動的に追加されます。
私のコード ビハインド (FormView へのデータ バインディング) を除いて、すべて問題ありません。イベントを接続する方法がわかりません。
私のカスタムクラスには、次のものがあります。
Dim Objective_addBtn As Button = New Button
Objective_addBtn.ID = 'I dynamically set the ID here
AddHandler Objective_addBtn.Click, AddressOf AddRow
私のカスタムクラスには、次のものがあります。
Public Event AddNewRow As EventHandler
Private Sub AddRow(sender As Button, e As EventArgs)
Select Case True
Case sender.ID.Contains("ProblemBtn")
Case sender.ID.Contains("GoalBtn")
Case sender.ID.Contains("ObjectiveBtn")
RaiseEvent AddNewRow(Me, EventArgs.Empty)
Case sender.ID.Contains("TaskBtn")
Case Else
'Do Nothing - Should Not be here!
End Select
End Sub
RaiseEvent のコード ブロックに到達していることを確認しましたが、コード ビハインドでそのイベントをキャプチャする方法がわかりません。
私の現在の分離コード:
Partial Class <mypage>
Inherits System.Web.UI.Page
Private WithEvents CustomClass As New CustomClass
Protected Sub Page_Load(ByVal sender as object, e as EventArgs) Handled Me.Load
CustomClass = New CustomClass(Request.QueryString("pid"), Request.QueryString("sid"))
AddHandler CustomClass.AddNewRow, AddressOf NewRow
End Sub
End Class
最後に、コード ビハインドにも次のものがあります。
Protected Sub NewRow(ByVal sender As Object, e As EventArgs) Handles CustomClass.AddNewRow
MsgBox("NewRow Test")
End Sub
NewRow が起動されることはなく、MsgBox テストが表示されることもありません。また、段階的にデバッグすると、NewRow サブルーチンが入力されないことが確認されます。