.NET----给用户控件添加事件

来源:互联网 发布:c语言打印出杨辉三角形 编辑:程序博客网 时间:2024/04/29 23:00

新建一个用户控件:WebUserControl.ascx,然后加一个按钮“AButton”
后台:
public delegate void ClickEventHandler(object sender, EventArgs e);

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

    }

    public ClickEventHandler Click;
    protected void OnClick(EventArgs e)
    {
        if (Click != null)
        {
            Click(this, e);
        }
    }

    protected void AButton_Click(object sender, System.EventArgs e)
    {
        this.OnClick(e);
    }
}
WebUserControl.ascx中的处理:
1. 定义public的事件委托,如ClickEventHandler;
2. 在Controls_WebUserControl 类中声明事件,如Click;
3. 在Controls_WebUserControl 类中定义引发事件的方法,如OnClick()方法;
4. 在Controls_WebUserControl 类的相关方法中调用引发事件的方法,如在Button_Click()中调用OnClick()。

在页面中拖入WebUserControl.ascx,ID为“WebUserControl1”
后台:
protected void Page_Load(object sender, EventArgs e)
    {
        InitializeComponent();
    }

    private void InitializeComponent()
    {
        this.Load += new System.EventHandler(this.Page_Load);
        Controls_WebUserControl uc = this.FindControl("WebUserControl1") as Controls_WebUserControl;
        uc.Click += new ClickEventHandler(this.UserControl_Clicked);
    }
    private void UserControl_Clicked(object sender, System.EventArgs e)
    {
        Book.BookUtility.ScriptHelp.Alert("2");
    }
包含Controls_WebUserControl的页面cs文件中的处理:
1. InitializeComponent()中增加事件处理程序,采用FindControl方法找到Controls_WebUserControl;
2. 定义事件处理方法,在该方法中处理Controls_WebUserControl的事件,如UserControl_Clicked()。

原创粉丝点击