国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

ASP.NET中最簡(jiǎn)單的自定義控件

2019-11-17 01:58:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

asp.net中最簡(jiǎn)單的自定義控件

ASP.NET用戶(hù)控件一般適用于產(chǎn)生相對(duì)靜態(tài)的內(nèi)容,所以沒(méi)有builtin的事件支持。本文討論用戶(hù)控件返回事件的方法。 假定用戶(hù)控件(UserControl.ascx)中包含按鈕控件AButton,希望實(shí)現(xiàn)按AButton按鈕時(shí),包含該用戶(hù)控件的頁(yè)面可以接收到事件。為此,小雞射手在用戶(hù)控件和頁(yè)面的代碼中分別作了處理。 UserControl.ascx.cs中的處理: 1. 定義public的事件委托,如ClickEventHandler; 2. 在UserControl類(lèi)中聲明事件,如Click; 3. 在UserControl類(lèi)中定義引發(fā)事件的方法,如OnClick()方法; 4. 在UserControl類(lèi)的相關(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的頁(yè)面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é)一下,其實(shí)就是將事件機(jī)制利用手工編程的方法加進(jìn)去:加入一般控件IDE自動(dòng)生成的代碼。順便說(shuō)一下,C#的事件機(jī)制實(shí)現(xiàn)了Obeserver pattern,除了UI還可以用于業(yè)務(wù)層,能有效地降低對(duì)象間的耦合度,像UserControl那樣,根本無(wú)需知道包含它的頁(yè)面對(duì)象是誰(shuí)!
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 苏尼特右旗| 嘉祥县| 灵台县| 新河县| 米易县| 彭阳县| 武定县| 晋江市| 罗定市| 长白| 泗洪县| 镶黄旗| 南京市| 通许县| 友谊县| 阳泉市| 明水县| 瑞丽市| 高州市| 清丰县| 东丽区| 武宣县| 襄垣县| 南通市| 凯里市| 河曲县| 莱州市| 英超| 鄂托克旗| 铜陵市| 阜宁县| 买车| 灵山县| 鄂州市| 新田县| 山西省| 乌兰县| 阳城县| 和林格尔县| 通江县| 衡东县|