1.服務器端控件Button被渲染成客戶端的
<input type="submit" name="Button1" value="Button" id="Button1" />
類型為type="submit"此類控件點擊以后會通過form表單提交,點擊以后會作為參數發送到服務端,參數是控件的name屬性=控件的value值,服務器端會根據接收到的控件的name屬性的這個值來得知是這個按鈕被點擊了,從而在服務端觸發這個按鈕的點擊事件。
當我們在服務器端控件Button標簽中加入name屬性時,在前端渲染時服務器會將其去掉,這也證明了后臺是通過name值來獲取被點擊的按鈕名稱的。
2.其他服務器端控件的后臺事件觸發
服務器會自動為服務器端控件的事件觸發生成一個腳本:
1 <script type="text/javascript"> 2 //<![CDATA[ 3 var theForm = document.forms['form1']; 4 if (!theForm) { 5 theForm = document.form1; 6 } 7 function __doPostBack(eventTarget, eventArgument) { 8 if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 9 theForm.__EVENTTARGET.value = eventTarget;10 theForm.__EVENTARGUMENT.value = eventArgument;11 theForm.submit();12 }13 }14 //]]>15 </script>
然后在每個控件相應事件里加入js代碼:<a id="LinkButton1" href="Javascript:__doPostBack('LinkButton1','')">Click</a>
以調用doPostBack向后臺發送相應的觸發信息,有兩個參數,第一個是觸發事件的控件名稱,第二個是事件參數。
3.服務器會自動生成隱藏域 VIEWSTATE,保存服務器控件的值,在頁面回發時保存狀態
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="dfH5nMWjX1dNSXzn46Y8JnrW6phZm5uVAKtEN6WJ9+0QH5o2vTLSkKi844UXjfMNj5w9xjbw+CveDXrKw6PmUBnHUp85WYCvEi9n8IHtvZ8=" />
新聞熱點
疑難解答