天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

關于前臺調用后臺事件__doPostBack函數(shù)

這里需要提一下的是,ASP.NET編程提供了服務端控件和客戶端控件的說法,其實還是脫離不了HTML的本質,客戶端和服務端需要交互必須要提交,提交有兩種方式get和post,get就是通過向服務端發(fā)送連接地址,服務端通過地址的參數(shù)來獲得信息的,一般這些參數(shù)都是明文,能在瀏覽器地址欄看到。而post是通過表單的input等元素提交到服務端的頁面的,這些數(shù)據(jù)一般是看不到的。ASP.NET的服務端控件其實就是對一般的HTML控件做了個包裝,大體是通過隱藏控件提供控制的參數(shù)的。 
這里介紹一個常用的函數(shù)_doPostBack,這個函數(shù)如果如果是ASP.NET render出來的頁面就是自動產(chǎn)生這個函數(shù),比如有帶autopostback屬性的控件,且其屬性為true的頁面,帶編輯列的datagrid頁面。 
__doPostBack是通過__EVENTTARGET,__EVENTARGUMENT兩個隱藏控件向服務端發(fā)送控制信息的,__EVENTTARGET為要調用控件的名稱,如果要調用的控件是子控件,用''$'或':'分割父控件:子控件,__EVENTARGUMENT是調用事件時的參數(shù) 
下面演示下如何調用后臺事件: 
1.新建工程 
2.拖入一個服務端Button1,一個DropDownList1和一個客戶端Button 
3.設置DropDownList1的AutoPostBack屬性為True,Button1的Visible為False 
4.雙擊Button1,在事件里寫下Response.Write("hello:" ); 
5.頁面的HTML里找到客戶端Button,寫入onclick="__doPostBack('Button1','')" 
6.編譯,運行,點擊Button是不是出現(xiàn)了"Hello" 
7.查看源代碼,發(fā)現(xiàn)里面多了下面行 
復制代碼 代碼如下:
<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> 

以及兩個隱藏控件 
復制代碼 代碼如下:

<input type="hidden" name="__EVENTTARGET" value="" />  
<input type="hidden" name="__EVENTARGUMENT" value="" /> 




值得注意的是,_doPostPack的第一個參數(shù)是大小寫不敏感的 

細心的人會發(fā)現(xiàn),在__doPostBack里,提交調用的是theform.submit(),這樣就導致對Form的onsubmit事件校驗失效了,幸好這個問題在ASP.NET 2.0已經(jīng)修復了。這里提供一個替換的解決辦法,在Form的最下面插入下面的代碼,這段代碼在保證不管是不是render出來的頁面均有效  
復制代碼 代碼如下:
<script language="Javascript"> 
<!-- 
function __doPostBack_Ex(eventTarget, eventArgument)  

var theform; 
if (window.navigator.appName.toLowerCase().indexOf("NETscape") > -1) { 
theform = document.forms[0]; 

else { 
theform = document.forms[0]; 


if(!theform.__EVENTTARGET) 
{  
theform.appendChild(document.createElement("<input type='hidden' name='__EVENTTARGET'>")); 


if(!theform.__EVENTARGUMENT) 
{  
theform.appendChild(document.createElement("<input type='hidden' name='__EVENTARGUMENT'>"));  


theform.__EVENTTARGET.value = eventTarget.split("$").join(":"); 
theform.__EVENTARGUMENT.value = eventArgument; 
if ((typeof(theform.onsubmit) == "function"))  

if(theform.onsubmit()!=false) 

theform.submit();  


else 
{  
theform.submit();  


function __doPostBack(eventTarget, eventArgument) 

__doPostBack_Ex(eventTarget, eventArgument); 




// --> 
</script> 

AspNet技術關于前臺調用后臺事件__doPostBack函數(shù),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久这里只有精品国产精品99 | 亚洲一日韩欧美中文字幕在线 | 国产 欧美 亚洲 日韩视频 | 日韩 亚洲 欧美 中文 高清 | 黄 色 网 站 免 费 涩涩屋 | 亚洲精品色婷婷在线蜜芽 | RUNAWAY韩国动漫免费网 | 贤妻良母电影日本 | 4480YY无码午夜私人影院 | 冈本视频黄页正版 | 人妖操女人 | 国语自产视频在线不卡 | 久久久久青草大香线综合精品 | 久久精品一卡二卡三卡四卡视频版 | 毛片手机在线看 | 亚洲成人黄色片 | xxxx88| 久久久久久91香蕉国产 | 新影音先锋男人色资源网 | 校花娇喘呻吟校长陈若雪视频 | 北岛玲手机在线观看视频观看 | 午夜亚洲精品不卡在线 | 女人被躁到高潮嗷嗷叫69 | 色欲AV久久综合人妻蜜桃 | 啦啦啦影院视频在线看高清... | 一一本之道高清手机在线观看 | 儿子你得太大了慢点插 | 好爽别插了无码视频 | 秋霞电影院午夜伦高清 | 久久99re热在线播放7 | 有码 亚洲 制服 国产 在线 | 原神美女被超污app 御姐被吸奶 | 亚洲欧洲日产国码中学 | 欧美精品XXXXBBBB | 欧美精品高潮呻吟AV久久 | a一级一片免费观看视频 | 久久久无码精品亚洲日韩按摩 | 午夜小视频免费观看 | 一个人看的HD免费高清视频 | 日本熟妇乱妇熟色A片蜜桃亚洲 | 人妻免费视频公开上传 |