usercontrol事件结束后调用页面方法

时间:2010-11-22 17:41:39

标签: c# asp.net user-controls parent

嘿 如何在usercontrol完成方法之后调用页面方法/从用户控件内部激活父页面方法?

1 个答案:

答案 0 :(得分:3)

最优雅的解决方案是让您的UserControl引发一个由父页面处理的事件。

在您的用户控件中,定义一个事件并将其抬起:

public partial class WebUserControl1 : System.Web.UI.UserControl {
    public event EventHandler MyMethodIsFinished;

    // ...

    protected void MyMethod {
        // ...
        if (MyMethodIsFinished != null)
            MyMethodIsFinished(this, EventArgs.Empty);
    }
}

在您的页面中,嵌入用户控件并定义处理程序:

<uc1:WebUserControl1 ID="MyWebUserControl1" runat="server"
                     OnMyMethodIsFinished="MyMethodIsFinishedHandler" />

然后在页面中编写处理程序代码:

protected void MyMethodIsFinishedHandler(object sender, EventArgs e) {
    // do something
}

如果您需要将数据传递给事件处理程序,建议的方法是继承EventArgs,如this example所示。