日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Asp.net页面事件引发后台程序处理原理【转】

發布時間:2023/12/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Asp.net页面事件引发后台程序处理原理【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以前在ASP中,不存在事件處理,傳統的處理方法是通過隱藏文本框來提交不同的參數進行區別用戶的不同動作,或則用不同的URL查詢字符串來區別。ASP.NET中出現了事件處理,讓開發人員區分用戶動作方便并簡單了許多。

實際上,ASP.NET中區別用戶動作引發的事件處理同樣也是采用了傳統方式,不過,MS將其封裝了起來,讓開發人員用起來更貼近于軟件開發中的事件驅動方式。

在ASP.NET中,幾乎每一個控件都帶有多種事件,開發人員可以在后臺通過編寫事件捆綁和事件處理來完成不同的工作。并且,可以在傳統方式中無法引發事件的控件中使用事件,如超鏈接、圖片、純文本。

ASP.NET中辨別用戶動作關聯事件的方法總體來看可以分成兩種。

一、在只存在BUTTON按鈕控件的情況下,ASP.NET辨別用戶動作并關聯事件不需要其他輔助方式。

ASP.NET將所有的BUTTON在生成HTML代碼的時候都生成為SUBMIT的提交按鈕,當多個提交按鈕在同一個FORM內時,通過SUBMIT按鈕提交的FORM集合中不會包含其他SUBMIT類型的提交按鈕,這樣,ASP.NET在預處理的前就將所有SUBMIT提交按鈕記錄下來,用戶執行提交后ASP.NET挨個的檢查FORM集合中的SUBMIT按鈕,因為只可能存在一個SUBMIT,所以檢查出的唯一的一個SUBMIT就是用戶動作觸發提交的按鈕,然后再對應的執行這個按鈕的后臺事件處理。

二、在存在傳統中并不能直接執行FORM提交的控件時。ASP.NET通過使用兩個隱藏的文本表單控件來辨別用戶執行的提交動作。

當在ASPX文件中使用了LINKBUTTON或則其他不是傳統的SUBMIT提交按鈕來執行后臺事件處理的時候,ASP.NET生成的HTML代碼中在FORM內的最前面會生成出兩個隱藏的文本筐控件
<input type="hidden" name="__EVENTTARGET">
<input type="hidden" name="__EVENTARGUMENT">
并生成一段JAVASCRIPT代碼
<script language="javascript">
<!--
?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();
?}
// -->
</script>

然后在每個加有事件處理的控件的事件屬性中都加上了__doPostBack('控件ID','參數值')這個JAVASCRIPT方法,__doPostBack這個JAVASCRIPT處理方法的作用就是將調用這個方法的控件ID記錄下來,如果是在模板類型的控件中還需要一些組合轉換,然后記錄執行參數。最后,將這兩個值分別賦給在FORM內最前面的那兩個隱藏文本筐中,最后,執行FORM的SUBMIT方法將頁面提交。

頁面提交后,ASP.NET會首先檢查兩個隱藏表單中的值,然后根據這兩個值首先執行控件中的處理方法,然后控件內部的處理再將事件委托給頁面的相關事件進行處理。

這樣ASP.NET就完成了通過用戶動作觸發關聯事件處理程序的過程。

?

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/banmuhuangci/archive/2006/10/31/1358057.aspx

轉載于:https://www.cnblogs.com/cxd4321/archive/2009/09/22/1571950.html

總結

以上是生活随笔為你收集整理的Asp.net页面事件引发后台程序处理原理【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。