处理包含页面的用户控制事件

AJM*_*AJM 6 asp.net user-controls

我想要一个包含保存按钮的用户控件.

我希望附加到保存按钮的click事件由包含页面而不是用户控件处理

这可能吗?

编辑更具体

假设我有一个名为"Editor Page"的页面和一个名为"Editor Buttons"的用户控件.在"编辑器按钮"用户控件上,我有一个保存按钮(这是一个Web控件).我希望保存按钮的Click事件由"编辑器页面"而不是用户控件处理.

这是因为我想指定实现常见行为的基页.

小智 6

该技术通常被称为"事件冒泡".

这是一个例子:

public partial class Test : System.Web.UI.UserControl

{

 public event EventHandler buttonClick;

 protected void Button1_Click(object sender, EventArgs e)
 {
     buttonClick(sender, e);
 }

}
Run Code Online (Sandbox Code Playgroud)

然后,您可以订阅事件按钮单击网页以显示不同的信息.

public partial class Test: System.Web.UI.Page
 {
 protected void Page_Load(object sender, EventArgs e)
 {

 UserControlID.buttonClick+=new EventHandler(UserControlID_buttonClick);

}

protected void UserControlID_buttonClick(object sender, EventArgs e)
 {
     Response.Write("hello,I am jack.");
 }

}
Run Code Online (Sandbox Code Playgroud)


Fre*_*örk 5

我将假设您拥有 UserControl 的代码。如果是这样的话,你可以在你的用户控件定义保存事件,并将它暴露的Click事件保存按钮,可以直接或通过在内部设置了一个事件处理程序,并单击按钮时抬高保存事件。在 UserControl 中可能看起来像这样:

public event EventHandler Save;

private void SaveButton_Click(object sender, EventArgs e)
{
    OnSave(e);
}

protected void OnSave(EventArgs e)
{
    // raise the Save event
    EventHandler save = Save;
    if (save != null)
    {
        save(this, e);
    }
}
Run Code Online (Sandbox Code Playgroud)