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

首頁 > 網站 > 建站經驗 > 正文

淺談ASP.、NET中最簡單的自定義控件

2019-11-02 15:05:24
字體:
來源:轉載
供稿:網友

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

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

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

  UserControl.ascx.cs中的處理:

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

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

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

  4. 在UserControl類的相關方法中調用引發事件的方法,如在Button_Click()中調用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);

  MyUse

北京電影網[www.aikan.tv/special/beijingdianyingwang/]
rControl 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

  }

 

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

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 县级市| 深圳市| 应用必备| 临猗县| 乌拉特前旗| 昌都县| 柏乡县| 松滋市| 东兴市| 自治县| 彝良县| 六枝特区| 麟游县| 怀来县| 璧山县| 铜鼓县| 金山区| 清涧县| 隆安县| 铜陵市| 武胜县| 屏东市| 沐川县| 河间市| 邹平县| 仪陇县| 陆丰市| 漳州市| 巴塘县| 灵川县| 灌云县| 肥乡县| 双桥区| 沛县| 锦州市| 宽城| 宁陕县| 临夏市| 长兴县| 通化市| 阜南县|