マスター ページからユーザー コントロールにアクセスする必要がありますが、ユーザー コントロールがマスター ページに直接配置されていません。次の階層があります。
マスター ページ > HeaderUserControl > LoginUserControl > ログイン ボタンとログアウト ボタン
要件:
ログアウトボタンのログアウトメソッドを呼び出す必要があります。残念ながら、それを行うための最良の設計が得られません。
アドバイスして助けてください。
ありがとう
@SimonWhitehead が言ったように、クラスを追加し、MasterPage
と の両方から Logout メソッドを呼び出す必要がありLoginControl
ます。しかし、あなたが主張するなら、これはそれを行う方法であり、ほとんどメソッドを次のレベルに見えるようにします:
ログインユーザーコントロール:
Public Sub DoLogout()
'Do something'
End Sub
Protected Sub Logout_Click(sender As Object, e As EventArgs) Handles Logout.Click
DoLogout()
End Sub
HeaderUserControl :
Public Sub DoLogout()
Me.LoginUserControl.DoLogout()
End Sub
そして最後に
マスターページ:
Protected Sub Logout_Click(sender As Object, e As EventArgs) Handles Logout.Click
HeaderUserControl.DoLogout()
End Sub
LoginUserControl
これにより、コントロールでメソッドが呼び出されます。