1
A
回答
1
FYI我是一個C#的傢伙,你需要我的解決方案轉換爲vb.net,或者如果有人希望編輯這個答案,這將是膨脹。我可以嘗試和記住語法,但是我會弄錯它,增加更多的困惑,然後它的價值。
這工作,全部做的是鑄造頁面向右類型:
((MyParentPageType)this.Page).Method()
這一說我不建議這樣做。你基本上把這個用戶控件硬連線到父頁面。您至少可以定義一個接口,任何包含此控件的頁面都必須實現。此時你已經提供了一些解耦。
一個更好的機制是用戶控件引發一個事件,即父頁面將是訂閱者。這是所有其他控件的工作原理。爲此,您可以像
在你的用戶控件添加事件:
private static readonly object EventClick=new object();
public event EventHandler<ClickEventArgs> Click
{
add
{
base.Events.AddHandler(EventClick, value);
}
remove
{
base.Events.RemoveHandler(EventClick, value);
}
}
那麼你的頁面將添加一個處理Click事件,那麼當你需要,你可以觸發事件。現在,您已將頁面上的用戶控件分離出來。
0
不知道VB.Net那麼好,但在C#中的代碼後面我想補充:
/// <summary>
/// Relay
/// </summary>
public event EventHandler ButtonClick;
protected void BtnClick(object sender, EventArgs e)
{
if (this.ButtonClick != null) this.ButtonClick(sender, e);
}
我認爲VB.Net將是(但真的不知道!):
Public Event ButtonClick as EventHandler
Private Sub BtnClick(ByRef sender as object, ByRef e as EventArgs)
RaiseEvent ButtonClick(sender, e)
End Sub
這暴露了UserControl上的一個事件,可以在頁面中使用該事件來連接它。
在UserControl的Asp:Button的標記上,設置OnClick="BtnClick"
,它應該將事件中繼到UserControl上的事件。
在頁面的標記中添加OnButtonClick="PageBtnClick"
到UserControl標記,然後可以調用您希望的頁面的方法。
相關問題
- 1. 如何從aspx頁面訪問userControl中的web控件頁面
- 2. 無法從aspx頁面引用UserControl
- 3. 從aspx頁面訪問PageMethod
- 4. 訪問.aspx頁面Ajax TabContainer從.aspx .ascx
- 5. 從aspx頁面訪問Javascript類的方法
- 6. 訪問頁面的方法訪問頁面與頁面方法
- 7. 如何從usercontrol調用aspx內容頁面方法? ASP.NET,C#
- 8. 如何從頁面訪問usercontrol的值?
- 9. 從aspx頁面訪問靜態類方法
- 10. 無法在aspx頁面訪問資源
- 11. 從aspx頁面訪問靜態變量
- 12. 在方法後面訪問代碼在aspx頁面中變量
- 13. 訪問變量從頁面後面的代碼到aspx頁面
- 14. 爲什麼在.aspx頁面中無法訪問usercontrol內的控件?
- 15. 從主頁面訪問兒童頁面的標題aspx
- 16. 如何從.aspx頁面訪問.aspx.cs頁面的值?
- 17. 從其父頁面調用UserControl方法
- 18. 從另一個usercontrol訪問usercontrol的方法
- 19. 如何從aspx頁面訪問silverlight控件的屬性和方法?
- 20. 訪問aspx頁面中的控件
- 21. 如何從aspx頁面重定向到另一個aspx頁面的方法
- 22. 無法訪問從代碼中的變量在後面的aspx頁面
- 23. 如何從不同的aspx頁面刷新mastercontrol中的usercontrol?
- 24. 如何通過.aspx訪問.cshtml頁面
- 25. 匿名訪問aspx頁面失敗
- 26. 從父頁面訪問UserControl中的基於模板的控件
- 27. 從aspx頁面訪問靜態類屬性頁
- 28. 可變ASPX頁面無法訪問,由於從後面的代碼
- 29. 如何從aspx頁面引發usercontrol上的事件
- 30. 爲什麼我無法訪問usercontrol中的頁面viewstate?