我有一个子UserControl,它被动态加载到父页面。
ChildControl childcontrol = this.LoadControl("") as ChildControl;
我必须从这个childUserControl中调用父页面中的一个方法。我们怎么做?
由于
答案 0 :(得分:3)
您不应该编写依赖于页面上的方法的控件,因此最好的做法是公开和处理来自子控件的事件。将以下内容添加到您的子控件:
public event OnSomethingHandler Something;
public delegate void OnSomethingHandler(ChildControl sender);
然后,当您要触发有问题的页面方法时,请触发事件:
public void FireParentMethod()
{
if (Something != null)
{
Something(this);
}
}
您需要做的就是在页面上处理事件(标记或代码如下):
childUserControl.Something+=
new ChildControl.OnSomethingHandler(ChildControl_OnSomething);
将处理程序添加到后面的代码中:
protected void ChildControl_OnSomething(ChildControl sender)
{
FirePageMethod();
}
答案 1 :(得分:0)
将控件的父级转换为页面的特定类型,然后调用方法。