日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2025/6/15 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net页面回传与js调用服务端事件、PostBack的原理详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ASP.ENT中,有兩種實(shí)現(xiàn)頁(yè)面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)頁(yè)面回傳機(jī)制的。具體步驟如下: 1、如果頁(yè)面中存在除Button和ImageButton外的服務(wù)端控件,ASP.NET頁(yè)面框架會(huì)自動(dòng)在頁(yè)面中增加兩個(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ù)端控件為例說(shuō)明,以下為服務(wù)端到客戶端的映射: <a id="LinkButton1"href="javascript:__doPostBack('LinkButton1','')">LinkButton</a> 但是,經(jīng)過(guò)試驗(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來(lái)判斷是哪個(gè)控件的什么事件觸發(fā)了。

總結(jié)

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

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