我有一個用戶控制一個LinkButton,它已與處理:處理從父ASP.NET頁面中用戶控件Click事件LinkButton的
Private Sub LoginLinkLinkButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoginLinkLinkButton.Click
Response.Redirect("/", True)
End Sub
在某些ASPX頁面,我想處理從點擊該頁面的代碼背後,與用戶控件內部相反。我如何覆蓋頁面後面父代碼的控件中的句柄?
更新: 基礎上的答案,我已經更新了用戶控制:
Public Event LoginLinkClicked As OnLoginClickHandler
Public Delegate Sub OnLoginClickHandler(ByVal sender As Object, ByVal e As EventArgs)
[...]
Private Sub LoginLinkLinkButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LoginLinkLinkButton.Click
**If OnLoginClickHandler IsNot Nothing Then**
RaiseEvent LoginLinkClicked(Me, e)
Else
Response.Redirect("/", True)
End If
End Sub
的問題是確定正確的語法,如果線,因爲上面是無效的。
我不知道這是可能的或沒有,但你肯定能考慮將邏輯分離成一箇中心類,您的ASPX和ASCX事件處理程序都會調用它。 – TimS 2010-07-20 15:54:49
我更新了我的答案。這是您的更新的有效翻譯嗎? – GenericTypeTea 2010-07-20 17:45:35
我不知道這會有所幫助,基本上我想定義一個默認行爲,並在幾頁上覆蓋默認行爲。它歸結爲找到一種方法來查詢處理程序是否在VB.NET中有訂閱者。 – Josh 2010-07-20 17:45:58