摘要:淺談 PostBack 機制
先在設計畫面拉出二個控制項:TextBox 與 Button
此時在網頁檢視原始碼,form 被轉譯為如下:
action 代表在 form 標籤內發出 submit 時所要導向的網頁,也就是自已本身網頁。
此時button被轉譯如下:
就變成了 submit 功能的按鈕了。
所以當畫面上有 Button 控制項,點擊後會回貼本身網頁這稱為 PostBack 機制。
當 TextBox 啟用 AutoPostBack 後就具備 PostBack 功能
此時 HTML 原始碼會多出一段 javascript ,TextBox 會被轉譯如下
這時候有一個 onchange 的 JavaScript 事件,代表當 TextBox 的內容經過修改後就會引發。
引發事件時會去呼叫一個 JavaScript 函式 : __doPostBack(\'TextBox1\',\'\')
帶入有二個參數,第一個為引發此事件的表單之名稱,第二個為事件資訊
你會發現這個函式位於上方的 JavaScript 區塊,裡面做的事如下:
1. 取得網頁中的 form1 物件
2. 判斷是否 submit
3. 將傳進來的二個參數寫進最上方的二個隱藏欄位(hidden)
4. 發送 submit
此時就會發生 PostBack ,而此時在 ASP.NET 如何知道是由誰引發的事件呢?
就是靠之前所寫入的隱藏欄位(hidden)
ASP.NET 會使用 Request.Form["__EVENTTARGET"] 來知道事件是由誰所引發的。