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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

以前在ASP中,不存在事件處理,傳統(tǒng)的處理方法是通過隱藏文本框來提交不同的參數(shù)進(jìn)行區(qū)別用戶的不同動(dòng)作,或則用不同的URL查詢字符串來區(qū)別。ASP.NET中出現(xiàn)了事件處理,讓開發(fā)人員區(qū)分用戶動(dòng)作方便并簡單了許多。

實(shí)際上,ASP.NET中區(qū)別用戶動(dòng)作引發(fā)的事件處理同樣也是采用了傳統(tǒng)方式,不過,MS將其封裝了起來,讓開發(fā)人員用起來更貼近于軟件開發(fā)中的事件驅(qū)動(dòng)方式。

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

ASP.NET中辨別用戶動(dòng)作關(guān)聯(lián)事件的方法總體來看可以分成兩種。

一、在只存在BUTTON按鈕控件的情況下,ASP.NET辨別用戶動(dòng)作并關(guān)聯(lián)事件不需要其他輔助方式。

ASP.NET將所有的BUTTON在生成HTML代碼的時(shí)候都生成為SUBMIT的提交按鈕,當(dāng)多個(gè)提交按鈕在同一個(gè)FORM內(nèi)時(shí),通過SUBMIT按鈕提交的FORM集合中不會(huì)包含其他SUBMIT類型的提交按鈕,這樣,ASP.NET在預(yù)處理的前就將所有SUBMIT提交按鈕記錄下來,用戶執(zhí)行提交后ASP.NET挨個(gè)的檢查FORM集合中的SUBMIT按鈕,因?yàn)橹豢赡艽嬖谝粋€(gè)SUBMIT,所以檢查出的唯一的一個(gè)SUBMIT就是用戶動(dòng)作觸發(fā)提交的按鈕,然后再對(duì)應(yīng)的執(zhí)行這個(gè)按鈕的后臺(tái)事件處理。

二、在存在傳統(tǒng)中并不能直接執(zhí)行FORM提交的控件時(shí)。ASP.NET通過使用兩個(gè)隱藏的文本表單控件來辨別用戶執(zhí)行的提交動(dòng)作。

當(dāng)在ASPX文件中使用了LINKBUTTON或則其他不是傳統(tǒng)的SUBMIT提交按鈕來執(zhí)行后臺(tái)事件處理的時(shí)候,ASP.NET生成的HTML代碼中在FORM內(nèi)的最前面會(huì)生成出兩個(gè)隱藏的文本筐控件
<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>

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

頁面提交后,ASP.NET會(huì)首先檢查兩個(gè)隱藏表單中的值,然后根據(jù)這兩個(gè)值首先執(zhí)行控件中的處理方法,然后控件內(nèi)部的處理再將事件委托給頁面的相關(guān)事件進(jìn)行處理。

這樣ASP.NET就完成了通過用戶動(dòng)作觸發(fā)關(guān)聯(lián)事件處理程序的過程。

?

本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/banmuhuangci/archive/2006/10/31/1358057.aspx

轉(zhuǎn)載于:https://www.cnblogs.com/cxd4321/archive/2009/09/22/1571950.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。