程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0服務器控件之復合控件事件

ASP.NET 2.0服務器控件之復合控件事件

編輯:關於ASP.NET

在上面一篇文章中,我們討論了有關創建復合控件的基本理論,並且通過一個典型應用掌握了復合控件的呈現方法。本文將繼續講解有關創建復合控件的內容,重點是為復合控件實現事件的具體方法。

復合控件的事件處理簡介

談到自定義控件的事件處理問題,這在前面的系列文章中已經進行講解。由前文可知,實現控件事件的核心主要是定義事件屬性結構和事件處理程序等。然而,這些內容是構建所有自定義服務器控件的基礎。僅僅依靠這些方法是無法實現復合控件的事件的。因為,復合控件中包含子控件,這就使得復合控件的事件處理變得復雜起來。顯而易見,在復合控件的事件實現過程中,需要面臨的最大問題是:由於不允許開發人員直接訪問子控件(雖然通過Controls集合訪問的方法可以實現,但是破壞了程序的封裝性,因此是不被允許的),如果子控件的事件不能作為頂級事件引發,那麼將無法實現子控件的事件處理。簡單的說,即如何實現子控件的事件上傳。所謂事件上傳是指把子控件的事件暴露為頂級事件,這樣父控件可以檢查到事件,並按照定義來執行相關事件處理程序。

由以上內容可知,復合控件的事件處理,主要是實現子控件事件上傳的過程。下面將介紹兩種常用的事件上傳實現方法:包含法和冒泡法。這兩種方法實現機理不同,然而,完成了同樣的功能。在下文中,我們將通過理論結合示例的方法展開講解。

包含法

包含法的核心是,通過在子控件的事件處理程序中調用復合控件的頂層事件處理程序,以完成子控件的事件上傳。在執行過程中,當引發子控件事件後,子控件的事件處理程序將自動調用相關頂層事件處理程序。

包含法的關鍵步驟如下:

·在CreateChildControls方法中,為子控件添加事件處理程序。

·定義頂層事件及其事件處理程序OnEventName。

·在子控件的事件處理程序中調用OnEventName。

·定義事件屬性結構。

由以上內容可知,包含法的步驟與前面文章中介紹的實現控件的方法基本類似。關鍵是多出了一個在CreateChildControls方法中,為子控件添加事件處理程序的步驟。為了讀者能夠更加清晰的理解包含法,下文列舉了一個利用包含法為復合控件實現事件的示例。

首先,利用上一篇文章中介紹的復合控件呈現方法,創建一個由文本框和按鈕組成的復合控件,然後,使用上文所述的包含法,將按鈕的Click事件上傳為頂層事件Submit。下面列舉了該控件的源代碼。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved