欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年01月30日 11:30:48   投稿:hebedich  
這篇文章主要簡單介紹了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()。

        核心代碼示意如下:

復(fù)制代碼 代碼如下:

        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()。
核心代碼示意如下:

復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • 在FireFox/IE下Response中文文件名亂碼問題解決方案

    在FireFox/IE下Response中文文件名亂碼問題解決方案

    只是針對沒有空格和IE的情況下使用Response.AppendHeader()如果想在FireFox下輸出沒有編碼的文件,并且IE下輸出的文件名中空格不為+號,就要多一次判斷了,接下來將詳細(xì)介紹下感興趣的朋友可以了解下,或許對你有所幫助
    2013-02-02
  • asp.net SqlDataReader綁定Repeater

    asp.net SqlDataReader綁定Repeater

    asp.net SqlDataReader綁定Repeater
    2009-04-04
  • .Net?Core跨平臺應(yīng)用開發(fā)串口篇HelloArm

    .Net?Core跨平臺應(yīng)用開發(fā)串口篇HelloArm

    這篇文章介紹了.Net?Core跨平臺應(yīng)用開發(fā)串口篇HelloArm,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • ASP.NET Core 5中如何生成PDF文檔

    ASP.NET Core 5中如何生成PDF文檔

    這篇文章主要給大家介紹了關(guān)于ASP.NET Core 5中如何生成PDF文檔的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • vs 不顯示行號的操作方法

    vs 不顯示行號的操作方法

    vs 不顯示行號的操作方法...
    2007-12-12
  • .NET簡單工廠模式講解

    .NET簡單工廠模式講解

    這篇文章主要為大家詳細(xì)介紹了ASP.NET簡單工廠模式的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • asp.net中List的使用方法

    asp.net中List的使用方法

    .net真是方便,這幾天幫朋友寫了個小軟件,用它還真感覺輕松自在,很稱手,自帶的類庫既豐富又實用
    2008-10-10
  • .NET更新Xml中CDATA內(nèi)容的方法實例

    .NET更新Xml中CDATA內(nèi)容的方法實例

    這篇文章介紹了.NET更新Xml中CDATA內(nèi)容的方法實例,有需要的朋友可以參考一下
    2013-07-07
  • .net前臺調(diào)用后臺函數(shù)的簡單實例

    .net前臺調(diào)用后臺函數(shù)的簡單實例

    這篇文章介紹了.net前臺調(diào)用后臺函數(shù)的簡單實例,有需要的朋友可以參考一下
    2013-09-09
  • ADO.NET通用數(shù)據(jù)庫訪問類

    ADO.NET通用數(shù)據(jù)庫訪問類

    這篇文章主要為大家介紹了ADO.NET通用數(shù)據(jù)庫訪問類,利用ADO.NET的體系架構(gòu)打造通用的數(shù)據(jù)庫訪問通用類,感興趣的小伙伴們可以參考一下
    2016-03-03

最新評論