日期:2014-05-17  浏览次数:20779 次

ASP.NET用户控件事件的定义和实践

假定用户控件(UserControl.ascx)中包含按钮控件? AButton,希望实现按? Button? 按钮时,包含该用户控件的页面可以接收到事件。

UserControl.ascx.cs? 中的处理:
1.
定义? public? 的事件委托,如? ClickEventHandler;
2.
? UserControl? 类中声明事件,如? Click;
3.
? UserControl? 类中定义引发事件的方法,如? OnClick()方法;
4.
? UserControl? 类的相关方法中调用引发事件的方法,如在? Button_Click()中调用? OnClick()

?下面这个例子是简单的响应点击事件

demo:buttonlist.aspx.cs

using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace stoneControls
{
??? public delegate void ClickEventHandler(object sender, EventArgs e);
??? public partial class buttonList : System.Web.UI.UserControl
??? {
??????? public event ClickEventHandler Click;
??????? protected void OnClick(EventArgs e)
??????? {
??????????? if (Click != null)
??????????????? Click(this, e);
??????? }

??????? protected void lbnHome_OnClick(object sender, EventArgs e)
??????? {
??????????? this.OnClick(e);
??????? }
??? }
}

demo:buttonlist.aspx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="b