當使用者點擊按鈕導致表單回傳,伺服器如何識別觸發控制項並引發對應事件?本篇以流程圖解方式詳細說明:
input 值與 __EVENTTARGET、__EVENTARGUMENT 隱藏欄位。__EVENTTARGET 值(觸發回傳的控制項 UniqueID)。Default_aspx)中尋找同 ID 控制項。IPostBackEventHandler,於生命週期適當階段(RaisePostBackEvent)呼叫 RaisePostBackEvent 觸發事件。IPostBackDataHandler,先呼叫 LoadPostData 比對新舊值,決定是否引發 RaisePostDataChangedEvent。RaisePostBackEvent(string eventArgument),供按鈕等觸發伺服器事件。LoadPostData(比對資料)與 RaisePostDataChangedEvent(資料變更通知),供 TextBox、DropDownList 等輸入控制項使用。文章並說明為何一般 HTML <input type="submit"> 無法觸發伺服器事件:因未註冊 __EVENTTARGET 且未實作介面。