真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ASP.NET傳輸機制是什么

這篇文章主要介紹“ASP.NET傳輸機制是什么”,在日常操作中,相信很多人在ASP.NET傳輸機制是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ASP.NET傳輸機制是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

在湛河等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計制作、網(wǎng)站建設 網(wǎng)站設計制作按需設計網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站建設,成都全網(wǎng)營銷,外貿網(wǎng)站建設,湛河網(wǎng)站建設費用合理。

ASP.NET頁面如果是通過post請求到服務器,框架將會遵行事件周期生成、調用控件,而控件(如果支持回傳)則將加載回傳數(shù)據(jù),并且映射成控件的服務器端事件,就好像在重放客戶的客戶行為(客戶按下一個按鈕,卻引發(fā)服務器端控件的click事件)。其中的機制如何?

ASP.NET組件設計之傳輸機制的問題:如果一個控件需要處理回傳事件,那么必須實現(xiàn)一個特定接口 IPostBackEventHandler接口:

public interface IPostBackEventHandler{       void RaisePostBackEvent(string eventArgument);   }

ASP.NET組件設計之傳輸機制的另外一個接口:

IPostBackDataHandler    {   bool LoadPostData( string postDataKey,   NameValueCollection postCollection);   void RaisePostDataChangedEvent();   }

一旦控件實現(xiàn)了這些接口,頁面框架就會自動在PostBack數(shù)據(jù)完成后,調用控件的此接口IPostBackDataHandler。LoadPostData,從而讓控件讀取post上來的數(shù)據(jù)。PostDataKey為PostBack數(shù)據(jù)中的命名鍵名,通過NameValueCollection[postDataKey]可以獲得頁面框架傳遞給控件的值??丶斪x取此值,進行自己內部狀態(tài)更新,反映狀態(tài)變化。如果控件返回真,表示服務器控件狀態(tài)改變,此時頁面框架會立即調用此控件的RaisePostDataChangedEvent方法。此時,控件應當自己定義該引發(fā)那些服務器控件對外提供的事件。這些事件往往是控件編程者精心設計留給使用這控鍵的aspx編程者的代碼舞臺。

至于另一個接口IPostBackEventHandler,也是回傳時候服務器調用的接口。我們知道每一個控件都有一個UniqueID,當客戶端觸發(fā)一個可以引起回傳的客戶端事件(譬如按下了submit按鈕),那么自然HTTP Post數(shù)據(jù)到服務器端,服務器頁面框架進行到PostBack處理時候,會檢索控件是否支持IpostBackEventHandler接口,并且查找控件的UniqueID發(fā)現(xiàn)支持就立即調用此接口的RaisePostBackEvent方法,表示UniqueID的控件發(fā)生了一個需要捕獲的事件。很明顯,并非客戶端所有事件都可以投射到服務器端,只能夠是能夠引發(fā)Post Back(也就是能夠提交表單數(shù)據(jù)到服務器的事件)的事件和控件。注意,這里嚴格要求了UniqueID必須在服務器端和客戶端對應一致,否則無法映射事件。

值得控件編寫者注意的是,如果要實現(xiàn)接口,需要如下實現(xiàn)接口,而不是通常的僅僅接口方法名同名即可:

void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)   {          ……   }

ASP.NET組件設計之傳輸機制的實現(xiàn)接口方面也就是說,接口針對頁面框架實現(xiàn)的,也由頁面框架調用。

另一方面,在客戶端,能夠引起回傳的實際上僅有2個HTML元素﹤inoput type=submit ﹥和﹤input type=image,但是通過客戶端腳本,其他客戶端事件也可導致回傳數(shù)據(jù)到服務器端。Page類提供了一系列的方法來幫助實現(xiàn)其他可引發(fā)回傳的途徑:

public string GetPostBackClientEvent(      Control control,      string argument   );

獲取對客戶端腳本函數(shù)的引用,該函數(shù)在被調用時將導致服務器回發(fā)到窗體。

public string GetPostBackClientHyperlink(      Control control,      string argument   );

將 javascript: 追加到從 GetPostBackEventReference 調用的返回的開頭,從而使服務器上可以進行超級鏈接回發(fā)處理。

public string GetPostBackEventReference(Control);   public string GetPostBackEventReference(Control, string);

獲取對客戶端腳本函數(shù)的引用,調用該函數(shù)將使服務器

如果一個控件確定通過以上方法確??蛻舳艘l(fā)回傳事件,那么控件引用頁將導致最終輸出到客戶端的HTML中包含腳本,并且腳本中藏有如下隱含變量:

﹤input type=”hidden” name=”__EVENTTARGET” value=””﹥   ﹤input type=”hidden” name=”__EVENTARGUMENT” value=””﹥   ﹤script language=”javascript”﹥   ﹤!—   function __doPostBack(eventTarget,eventArgument)           {           var theform=document._ct10;           theform.__EVENTTARGET.value= eventTarget;           theform.__EVENTARGUMENT.value= eventArgument;           }   -- ﹥   ﹤/script﹥

任何客戶端腳本只要合法調用了__doPostBack方法即可實現(xiàn)回傳到服務器端,并且服務器端也知道了是引發(fā)了那一個UniqueID得控件的事件。

到此,關于“ASP.NET傳輸機制是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
名稱欄目:ASP.NET傳輸機制是什么
本文鏈接:http://weahome.cn/article/jcpohs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部