GetCallbackEventReference的用法 挨踢人生_第1頁
GetCallbackEventReference的用法 挨踢人生_第2頁
GetCallbackEventReference的用法 挨踢人生_第3頁
GetCallbackEventReference的用法 挨踢人生_第4頁
GetCallbackEventReference的用法 挨踢人生_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、GetCallbackEventReference 的用法 挨踢人生GetCallbackEventReference 的用法作者:0湛狼O日期:2011年4月10日發(fā)表評論(0) 查看評論 作用:獲取一個對客戶端函數(shù)的引用;調(diào)用該函 數(shù)時,將啟動一個對服務器端事件的客戶端回調(diào)。此重載方 法的客戶端函數(shù)包含指定的控件、參數(shù)、客戶端腳本和上下 文。函數(shù)原型:public string GetCallbackEventReference (Control control,string argument,string clientCallback,string context)第一個參數(shù)指定了服務器

2、端將要處理回調(diào)的目標對象,即處 理客戶端回調(diào)的服務器端控件。該控件必須實現(xiàn) ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。如果傳入的是this,則表示頁面本身。也可以傳入任何實現(xiàn) 了 ICallbackEventHandler 的頁面控件(page control)的引用。 在任何情況下,客戶端的提交動作(submit action )會提交至 和標準回傳(postback)機制相同的ASPX頁面。第二個參數(shù)是一個JavaScript常量表達式,表示頁面?zhèn)鹘o服 務器的輸入數(shù)據(jù)。如將一個下拉列表當前選中元素的值傳 入”document.get

3、ElementByldcboEmployees.value”: 第三個參數(shù)是一個用戶定義在塊中的 JavaScript 回調(diào)(callback)函數(shù)名?;卣{(diào)(callback)執(zhí)行后, 此函數(shù)最終負責頁面的更新,即最后服務器端得結(jié)果會返回 給此參數(shù)指定的函數(shù),設計人員在此參數(shù)指定的函數(shù)中編寫 代碼實現(xiàn)頁面的無閃爍更新。最后兩個可選參數(shù)可用來指定錯誤處理函數(shù)(error handler) 和上下文對象(context object) 其中上下文對象的作用是啟動回調(diào)之前在客戶端計算的客 戶端腳本。 腳本的結(jié)果傳回客戶端事件處理程序。即第三 個參數(shù)clientCallback指定的腳本可在此定義,而

4、不必在設 計頁面定義。more例:StringBuilder context1 = new StringBuilder(); context1.Append(“function R eceiveServerData1(arg, context)”);context1.Append(“); context1.Append(“Message1.innerText = arg;”);context1.Append(“value1 = arg;”); context1.Append(“”);String cbReference1 = cs.GetCallbackEventReference(this,

5、 “arg”,“ReceiveServerDatal, context1.ToString();GetCallbackEventReference 函數(shù)將產(chǎn)生如下的腳本調(diào)用: WebForm_DoCallback(pageID, input,UpdateEmployeeViewHandler, null, null);此函數(shù)的代碼會自動下載到客戶端并通過標簽 添加到頁面響應(pages response)中。WebForm_DoCallback 使用 XmlHttpRequest DOM 對象 (XmlHttpRequest DOM object)回調(diào)(call back)當前頁面的 URL。

6、與此同時,它會添加一些額外的隱藏域(hidden field)以便服 務器區(qū)分更簡單的輕量級回調(diào)(callback)請求和一般回傳 (postback)請求。處理請求時,ASP.NET運行時(runtime)標識岀調(diào)用的目標 對象(傳給GetCallbackEventReference的第一個參數(shù)),確 認它實現(xiàn)了 ICallbackEventHandler接口后調(diào)用 RaiseCallbackEvent 方法:void RaiseCallbackEvent (string eventArgument)eventArgument 一般即是通過 GetCallbackEventReference

7、 指定的頁面?zhèn)鬟f到服務器端的輸入數(shù)據(jù),即參數(shù) 2 RaiseCallbackEvent 處理完畢,即通過調(diào)用 public string GetCallbackResult() 將處理結(jié)果返回給調(diào)用控件,交由客戶端執(zhí)行 GetCallbackEventReference 指定的客戶端腳本 clientcallback,由其完成客戶端刷新。上面說過腳本回調(diào)(script callback)并不適用于所有瀏覽器, 盡管最新的瀏覽器,包括 Internet Explorer 5+, Netscape 6+, and Safari1.2+都能行。Microsoft 在 ASP.NET2.0 中加入了兩

8、個新的 browser bapabilities :SupportsXmlHttp 與 SupportsCallback 以便開 發(fā)人員檢查方案的可行性。一條讓頁面刷新更快的告誡盡管腳本回調(diào)(script callback)定義在ASP.NET 2.0中,要 使其在ASP.NET 1.1里工作也并不很困難。在ASP.NET 2.0 中,很多服務器控件(server contro I)借助腳本回調(diào)(script callback)提供了更迅速的頁面刷新。最突岀的例子也許是GridView控件(GridView control),作 為DataGrid的接班人,選擇性地運用腳本回調(diào)(script

9、callback)實現(xiàn)分頁顯示記錄。正如前面所說,腳本回調(diào)(script callback)依賴于文檔對象模 型(DOM)的 XmlHttpRequest 對象。在 Internet Explorer 中, 此文檔對象模型對象(DOM object)通過ActiveX控件 (ActiveX control)實現(xiàn)Microsoft.XmlHttp。在 IE 中瀏覽這樣的頁面時,你必須適當降低安全設置以允許ActiveX控件(ActiveX control)能被腳本調(diào)用。在其他以同樣 方式實現(xiàn)XmlHttpRequest文檔對象模型對象(DOM object) 的瀏覽器中,這是不必要的。事實上 基

10、于Mozilla的瀏覽內(nèi)置支持了 HTTP請求功能器, 而沒用使用ActiveX控件(ActiveX control)這也是在Internet Explorer 7.0 中被寄予厚望的功能。下面簡單例子可作參考(例子來源于 高級編程第 7 版):服務器端 private string result; protected void Page_Load(object sender, EventArgs e)string script =Page.ClientScript.GetCallbackEventReference(this, arg, getRandom, content1);string

11、 script1 = function UseCallBack(arg, content1) + + script + ; + ;raise.Text = script1;Page.ClientScript.RegisterClientScriptBlock(this.GetType(),UseCallBack, script1, true); public void RaiseCallbackEvent(stringEventArgs)result = EventArgs;public string GetCallbackResult()return result+test;客戶端1234561011/ 這個代碼的工作流程是怎么樣得呢?首先,點擊按鈕Buttonl后,觸發(fā)test()函數(shù),函數(shù)內(nèi)調(diào)用UseCallBack 函數(shù),可以在此傳入?yún)?shù),傳入的參數(shù)將會傳給 服務器端的RaiseCallbackEvent函數(shù)進行解析,當然,也可以 中途截斷這個參數(shù)的傳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論