ASP.NET服务器端控件原理分析
生活随笔
收集整理的這篇文章主要介紹了
ASP.NET服务器端控件原理分析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
服務(wù)器端控件觸發(fā)事件分兩種:
1.服務(wù)器端控件Button被渲染成客戶端的
<input type="submit" name="Button1" value="Button" id="Button1" />
類型為type="submit"此類控件點擊以后會通過form表單提交,點擊以后會作為參數(shù)發(fā)送到服務(wù)端,參數(shù)是控件的name屬性=控件的value值,服務(wù)器端會根據(jù)接收到的控件的name屬性的這個值來得知是這個按鈕被點擊了,從而在服務(wù)端觸發(fā)這個按鈕的點擊事件。
當(dāng)我們在服務(wù)器端控件Button標(biāo)簽中加入name屬性時,在前端渲染時服務(wù)器會將其去掉,這也證明了后臺是通過name值來獲取被點擊的按鈕名稱的。
2.其他服務(wù)器端控件的后臺事件觸發(fā)
服務(wù)器會自動為服務(wù)器端控件的事件觸發(fā)生成一個腳本:
然后在每個控件相應(yīng)事件里加入js代碼:
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">Click</a>
以調(diào)用doPostBack向后臺發(fā)送相應(yīng)的觸發(fā)信息,有兩個參數(shù),第一個是觸發(fā)事件的控件名稱,第二個是事件參數(shù)。
3.服務(wù)器會自動生成隱藏域 VIEWSTATE ,保存服務(wù)器控件的值,在頁面回發(fā)時保存狀態(tài)
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="dfH5nMWjX1dNSXzn46Y8JnrW6phZm5uVAKtEN6WJ9+0QH5o2vTLSkKi844UXjfMNj5w9xjbw+CveDXrKw6PmUBnHUp85WYCvEi9n8IHtvZ8=" />
| 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> |
總結(jié)
以上是生活随笔為你收集整理的ASP.NET服务器端控件原理分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net控件本质
- 下一篇: ASP.NET服务器控件的生命周期分析