从C#中的子控件调用父页面方法

时间:2010-12-01 17:02:09

标签: c#

我有一个子UserControl,它被动态加载到父页面。

ChildControl childcontrol = this.LoadControl("") as ChildControl;

我必须从这个childUserControl中调用父页面中的一个方法。我们怎么做?

由于

2 个答案:

答案 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)

将控件的父级转换为页面的特定类型,然后调用方法。