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?