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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.net页面回传与js调用服务端事件、PostBack的原理详解

發(fā)布時(shí)間:2025/6/15 asp.net 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net页面回传与js调用服务端事件、PostBack的原理详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ASP.ENT中,有兩種實(shí)現(xiàn)頁面PostBack的機(jī)制,不管是哪種回傳方式,最終均是Form表單提交。 一、原始的Form表單提交 WebControls中的Button和ImageButton控件,到客戶端會(huì)轉(zhuǎn)換為 <input type="submit"name=""/> <input type="image"name=""/> 二、利用JavaScript和隱藏表單實(shí)現(xiàn)表單提交 除Button和ImageButton外,其他WebControls控件均是以這種方式實(shí)現(xiàn)頁面回傳機(jī)制的。具體步驟如下: 1、如果頁面中存在除Button和ImageButton外的服務(wù)端控件,ASP.NET頁面框架會(huì)自動(dòng)在頁面中增加兩個(gè)隱藏表單。 <input type="hidden"name="__EVENTTARGET"id="__EVENTTARGET"value=""/> <input type="hidden"name="__EVENTARGUMENT"id="__EVENTARGUMENT"value=""/> 2、服務(wù)端自動(dòng)生成如下的JavaScript方法,處理事件的發(fā)送。 <script type="text/javascript"> <!-- var theForm = document.forms['form1']; if (!theForm) {theForm = document.form1; } function __doPostBack(eventTarget, eventArgument) {if (!theForm.onsubmit || (theForm.onsubmit() != false)) {theForm.__EVENTTARGET.value = eventTarget;theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } // --> </script> 3、每個(gè)會(huì)引發(fā)服務(wù)端事件的控件都會(huì)在響應(yīng)的客戶端事件中調(diào)用上面的代碼。 以<asp:LinkButton>服務(wù)端控件為例說明,以下為服務(wù)端到客戶端的映射: <a id="LinkButton1"href="javascript:__doPostBack('LinkButton1','')">LinkButton</a> 但是,經(jīng)過試驗(yàn),我發(fā)現(xiàn)<asp:Checkbox>、<asp:TextBox>等服務(wù)端控件并不能自動(dòng)在客戶端生成調(diào)用JavaScrip的__doPostBack方法的代碼。 4.客戶端觸發(fā)事件后調(diào)用__doPostBack方法,將表示觸發(fā)的控件源的eventTarget 和事件參數(shù)eventArgument分別付給兩個(gè)隱藏域__EVENTTARGET和__EVENTARGUMENT,然后提交Form,在服務(wù)端根據(jù)__EVENTTARGET和__EVENTARGUMENT來判斷是哪個(gè)控件的什么事件觸發(fā)了。

總結(jié)

以上是生活随笔為你收集整理的asp.net页面回传与js调用服务端事件、PostBack的原理详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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