__doPostBack 是 ASP.NET 自動產生的 JavaScript 函數,透過兩個隱藏欄位 (__EVENTTARGET、__EVENTARGUMENT) 將客戶端動作轉換為伺服器端事件觸發。掌握其運作原理,能實現進階的客戶端與伺服器端互動。
AutoPostBack="true" 的控制項function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
} else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
配合兩個隱藏欄位:
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
| 參數 | 說明 | 範例 |
|---|---|---|
| eventTarget | 觸發事件的控制項 UniqueID (含命名容器分隔符 $ 或 :) | "GridView1$ctl02$btnEdit" |
| eventArgument | 事件額外參數 (CommandArgument 等) | "Edit$3" |