ASP.NET 怎麼學 - 瞭解事件驅動

對於任何視窗應用程式的開發人員來說,事件的處理再平常不過了,使用者的操作行為觸發特定的關聯事件,應用程式處理事件,然後產生結果,各種事件不斷的被觸發、進行處理,一直到應用程式結束。

視窗程式依賴無數的事件進行驅動,以網頁為基礎的應用程式並沒有這種概念,它唯一能夠與伺服器溝通並且進一步處理的事件,便是表單的Submit程序,資料被填入表單的欄位,然後使用者按下一個type屬性為submit的HTML INPUT標籤,觸發表單的傳送事件,此時資料回傳至伺服器作處理,最後伺服器完成處理程序,將結果回傳至前端瀏覽器,這一連串的過程,構成「要求/回應」的網站運作模型。

視窗程式的開發人員無法想像Submit如此簡陋的事件處理程序,如何應付以網頁為基礎的Web應用程式需求,事實上,在ASP還沒有進化成為.NET的時代,網頁開發人員為了牽就這樣的開發環境,著實也付出了不小的代價。

ASP.NET徹底的改造了整個Web應用程式的開發環境,將視窗應用程式的事件驅動模型,整個移植到網頁的設計當中,儘管這兩種不同的開發環境依然存在著差異,但是因為導入了事件驅動模型,開發人員已經可以利用相同的模式進行Web應用程式的開發作業。

事件驅動非常容易理解,網頁上的視覺化元素都有相關的事件處理程序,例如:按鈕的Click事件處理程序,
每一個事件,均有其關聯的事件處理程序,用來回應網頁執行過程中,使用者操作網頁所觸發的事件。撰寫事件處理程序是開發ASP.NET網頁非常重要的核心工作,每一種網頁物件、控制項,均有其專屬的事件,在網頁運作的過程當中,事件被觸發,事件處理程序被執行,完成特定的任務。

伺服器控制項,是構成ASP.NET網頁的主要視覺化元素,它就如同網頁,本身包含了一些事件,從控制項隨著網頁被初始化、載入一直到移除,相關的事件就不斷的被觸發、處理,這些事件有一些會自動被觸發,例如onload、oninit等等,某些則是因為使用者的操作而觸發。ASP.NET的事件驅動機制,讓開發人員以事件處理程序為中心架構,搭配後置程式碼的設計模式,將邏輯程式碼從網頁標籤抽離出來,簡化網頁內容,同時 Web 應用程式的架構能夠更為結構化。

1 則留言:

匿名 提到...

可以在這裡問一個奇怪的問題嗎?
就是齁~
我已經幫GridView設了DataKeyNames,但是GridView中RowDeleting事件中的e.Keys.Count一直都是0,為何會這樣呢?

後來做刪除時只好改用GridView.DataKeys["Key"]去抓取主鍵值>_<