动态加载用户控件,在“父页面”上单击按钮时,需要触发相应的“用户控件”方法

时间:2015-01-21 20:51:42

标签: c# asp.net user-controls event-handling

我有页面ParentPage.aspx和2个用户控件说(control1.ascxcontrol2.ascx

在页面加载时我根据条件动态添加了一个用户控件,现在这个ParentPage也有一个在PlaceHolder外面的按钮(它包含Usercontrol),点击说(btnNext按钮我想要调用UserControl的相应方法。

是否可以在“父级事件”页面上调用usercontrol的方法,

我正在尝试为此问题执行以下操作 1. userControl都将实现说IAction方法,其中包含Action方法。 2.页面将具有IAction类型的属性,其getter将返回相应的UserControl,并且在此IAction属性上(在该UserControl上我将调用Action方法)

但我想将这个ParentPage与UserControl分离,为此我想使用Event而不是如何做到这一点,

提供的所有Google链接,显示了如何在点击Usercontrol事件时调用父页面方法,但反之亦然。

1 个答案:

答案 0 :(得分:0)

如果您正在动态加载Usercontrol,如下所示。您可以在类级别声明Usercontrol并在课程中访问它。

ParentPage:

public partial class ParentPage: System.Web.UI.Page
{
  private  Control ucUserControl;
  protected void Page_Load(object sender, System.EventArgs e)
  {
    ucUserControl =(Control)Page.LoadControl("control1.ascx");
    placeholder.Controls.Add(ucUserControl);

   }
   //button click event 
   protected void button_Click(object sender, EventArgs e)
   {
     ucUserControl.ActionMethod();
   }
}