这是我的应用程序设置:
我的应用程序中有一个UserControls文件夹,里面有我的.ascx文件,它很高兴只包含一个简单的ASP按钮。我没有在ascx的代码隐藏中添加任何代码。
我有一个BaseForm.cs(只是一个C#类文件,而不是一个aspx文件),它继承自System.Web.UI.Page
public class BaseForm : System.Web.UI.Page {
protected override void OnInit(EventArgs e)
{
UserControls.UserButton1 ObjUserControls=(UserControls.UserButton1)LoadControl("~/UserControls/UserButton1.ascx");
ObjUserControls.ID = "UserControl1";
this.Form.Controls.Add(ObjUserControls);
base.OnInit(e);
}
}
现在我将拥有ASPX页面,例如:ChildPage1.aspx和ChildPage2.aspx,它们将继承自baseform而不是System.Web.UI.Page(显然)。
我想知道的是,如何在属于UserControl的事件的每个ChildPage中编写不同的实现。也就是说,例如,我想为ChildPage1.aspx中的Button Click事件执行ChildPage1ClickEventHandler,为ChildPage2.aspx中的Button Click事件执行ChildPage2ClickEventHandler
我该如何解决这个问题?请帮忙。
答案 0 :(得分:0)
这是前一段时间,虽然我不完全记住这个场景,但我知道那天我在寻找什么。
正如我稍后想到的那样,您需要做的是公开事件(单击或该用户控件的任何事件),然后在子页面中将事件处理程序附加到它。
另一种方法是使用我认为的委托(将用户控件点击事件处理从用户控件委托给你想要处理它的子页面)