将事件加入自订控制项中
有的时候,我们在自订控制项中添加BUTTON,比如新增、修改、删除、查询、打印等,或者向导中的上一步、下一步、完成。而我们在程序中所有用到这些按钮的地方,都透过添加这个自订控制项来完成
以下假如我们自订一个控制项页面,里面添加一个BUTTON,TEXT设置为“添加”,现在要在引用这个控制项的页面中透过点击这个按钮,来触发引用页面的事件
一、控制项页面的代码:
二、引用页面的代码
1。首先,要把自订控制项页面拖到引用页面中,ID设为 WebUserControl
ASPX代码中如下:
CS中代码如下:
以上,就可以在引用页面中点击控制项中的BUTTON来触发引用页面中的方法了
以下假如我们自订一个控制项页面,里面添加一个BUTTON,TEXT设置为“添加”,现在要在引用这个控制项的页面中透过点击这个按钮,来触发引用页面的事件
一、控制项页面的代码:
namespace WebTest
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/// <summary>
/// WebUserControl1 的摘要描述。
/// </summary>
public class WebUserControl1 : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Button Btn_Add;
protected System.Web.UI.WebControls.Button Btn_Modify;
/// <summary>
/// 定義委托
/// </summary>
public delegate void AddClick(object sender,EventArgs e);
public delegate void ModifyClick(object sender,EventArgs e);
/// <summary>
/// 定義事件
/// </summary>
public event AddClick OnAddClick;
public event ModifyClick OnModifyClick;
private void Page_Load(object sender, System.EventArgs e)
{
// 在這裡放置使用者程式碼以初始化網頁
}
#region Web Form 設計工具產生的程式碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 此為設計工具支援所必須的方法 - 請勿使用程式碼編輯器修改
/// 這個方法的內容。
/// </summary>
private void InitializeComponent()
{
this.Btn_Add.Click += new System.EventHandler(this.Btn_Add_Click);
this.Btn_Modify.Click += new System.EventHandler(this.Btn_Modify_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Btn_Add_Click(object sender, System.EventArgs e)
{
this.OnAddClick(sender,e); //觸發委托事件
}
private void Btn_Modify_Click(object sender, System.EventArgs e)
{
this.OnModifyClick(sender,e); //觸發委托事件
}
}
}
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/// <summary>
/// WebUserControl1 的摘要描述。
/// </summary>
public class WebUserControl1 : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.Button Btn_Add;
protected System.Web.UI.WebControls.Button Btn_Modify;
/// <summary>
/// 定義委托
/// </summary>
public delegate void AddClick(object sender,EventArgs e);
public delegate void ModifyClick(object sender,EventArgs e);
/// <summary>
/// 定義事件
/// </summary>
public event AddClick OnAddClick;
public event ModifyClick OnModifyClick;
private void Page_Load(object sender, System.EventArgs e)
{
// 在這裡放置使用者程式碼以初始化網頁
}
#region Web Form 設計工具產生的程式碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 此為設計工具支援所必須的方法 - 請勿使用程式碼編輯器修改
/// 這個方法的內容。
/// </summary>
private void InitializeComponent()
{
this.Btn_Add.Click += new System.EventHandler(this.Btn_Add_Click);
this.Btn_Modify.Click += new System.EventHandler(this.Btn_Modify_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Btn_Add_Click(object sender, System.EventArgs e)
{
this.OnAddClick(sender,e); //觸發委托事件
}
private void Btn_Modify_Click(object sender, System.EventArgs e)
{
this.OnModifyClick(sender,e); //觸發委托事件
}
}
}
二、引用页面的代码
1。首先,要把自订控制项页面拖到引用页面中,ID设为 WebUserControl
ASPX代码中如下:
<uc1:WebUserControl1 id="WebUserControl" runat="server"></uc1:WebUserControl1>
CS中代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebTest
{
/// <summary>
/// UserControlTest 的摘要描述。
/// </summary>
public class UserControlTest : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
WebUserControl1 wc = this.FindControl("WebUserControl") as WebUserControl1;
wc.OnAddClick += new WebTest.WebUserControl1.AddClick(this.AddButtonClick);
wc.OnModifyClick += new WebTest.WebUserControl1.ModifyClick(this.ModifyButtonClick);
}
private void AddButtonClick(object sender,EventArgs e)
{
Response.Write("Add Clicked!");
}
private void ModifyButtonClick(object sender,EventArgs e)
{
Response.Write("Modify Clicked!");
}
#region Web Form 設計工具產生的程式碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 此為設計工具支援所必須的方法 - 請勿使用程式碼編輯器修改
/// 這個方法的內容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebTest
{
/// <summary>
/// UserControlTest 的摘要描述。
/// </summary>
public class UserControlTest : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
WebUserControl1 wc = this.FindControl("WebUserControl") as WebUserControl1;
wc.OnAddClick += new WebTest.WebUserControl1.AddClick(this.AddButtonClick);
wc.OnModifyClick += new WebTest.WebUserControl1.ModifyClick(this.ModifyButtonClick);
}
private void AddButtonClick(object sender,EventArgs e)
{
Response.Write("Add Clicked!");
}
private void ModifyButtonClick(object sender,EventArgs e)
{
Response.Write("Modify Clicked!");
}
#region Web Form 設計工具產生的程式碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 此為設計工具支援所必須的方法 - 請勿使用程式碼編輯器修改
/// 這個方法的內容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
以上,就可以在引用页面中点击控制项中的BUTTON来触发引用页面中的方法了