淺談ASP.NET中最簡單的自定義控件
來源:易賢網(wǎng) 閱讀:901 次 日期:2015-02-10 14:05:55
溫馨提示:易賢網(wǎng)小編為您整理了“淺談ASP.NET中最簡單的自定義控件”,方便廣大網(wǎng)友查閱!

這篇文章主要簡單介紹了ASP.NET中最簡單的自定義控件,以及核心代碼示例,需要的朋友可以參考下

ASP.NET用戶控件一般適用于產(chǎn)生相對靜態(tài)的內(nèi)容,所以沒有builtin的事件支持。本文討論用戶控件返回事件的方法。

假定用戶控件(UserControl.ascx)中包含按鈕控件AButton,希望實現(xiàn)按AButton按鈕時,包含該用戶控件的頁面可以接收到事件。為此,小雞射手在用戶控件和頁面的代碼中分別作了處理。

UserControl.ascx.cs中的處理:

1. 定義public的事件委托,如ClickEventHandler;

2. 在UserControl類中聲明事件,如Click;

3. 在UserControl類中定義引發(fā)事件的方法,如OnClick()方法;

4. 在UserControl類的相關(guān)方法中調(diào)用引發(fā)事件的方法,如在Button_Click()中調(diào)用OnClick()。

核心代碼示意如下:

代碼如下:

public delegate void ClickEventHandler(object sender, EventArgs e);

public class MyUserControl : System.Web.UI.UserControl

{

protected System.Web.UI.WebControls.Button AButton;

public event ClickEventHandler Click;

protected void OnClick(EventArgs e)

{

if (Click!=null) Click(this, e);

}

private void AButton_Click(object sender, System.EventArgs e)

{

this.OnClick(e);

}

}

包含UserControl的頁面cs文件中的處理:

1. InitializeComponent()中增加事件處理程序,采用FindControl方法找到UserControl;

2. 定義事件處理方法,在該方法中處理UserControl的事件,如UserControl_Clicked()。

核心代碼示意如下:

代碼如下:

private void InitializeComponent()

{

this.Load += new System.EventHandler(this.Page_Load);

MyUserControl uc = this.FindControl("myUserControlID") as MyUserControl;

uc.Click += new ClickEventHandler(this.UserControl_Clicked);

}

private void UserControl_Clicked(object sender, System.EventArgs e)

{

// UserControl_Clicked event hanlder

}

總結(jié)一下,其實就是將事件機制利用手工編程的方法加進去:加入一般控件IDE自動生成的代碼。順便說一下,C#的事件機制實現(xiàn)了Obeserver pattern,除了UI還可以用于業(yè)務層,能有效地降低對象間的耦合度,像UserControl那樣,根本無需知道包含它的頁面對象是誰!

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:淺談ASP.NET中最簡單的自定義控件

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)