




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、GetCallbackEventReference 的用法 挨踢人生GetCallbackEventReference 的用法作者:0湛狼O日期:2011年4月10日發(fā)表評(píng)論(0) 查看評(píng)論 作用:獲取一個(gè)對(duì)客戶端函數(shù)的引用;調(diào)用該函 數(shù)時(shí),將啟動(dòng)一個(gè)對(duì)服務(wù)器端事件的客戶端回調(diào)。此重載方 法的客戶端函數(shù)包含指定的控件、參數(shù)、客戶端腳本和上下 文。函數(shù)原型:public string GetCallbackEventReference (Control control,string argument,string clientCallback,string context)第一個(gè)參數(shù)指定了服務(wù)器
2、端將要處理回調(diào)的目標(biāo)對(duì)象,即處 理客戶端回調(diào)的服務(wù)器端控件。該控件必須實(shí)現(xiàn) ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。如果傳入的是this,則表示頁(yè)面本身。也可以傳入任何實(shí)現(xiàn) 了 ICallbackEventHandler 的頁(yè)面控件(page control)的引用。 在任何情況下,客戶端的提交動(dòng)作(submit action )會(huì)提交至 和標(biāo)準(zhǔn)回傳(postback)機(jī)制相同的ASPX頁(yè)面。第二個(gè)參數(shù)是一個(gè)JavaScript常量表達(dá)式,表示頁(yè)面?zhèn)鹘o服 務(wù)器的輸入數(shù)據(jù)。如將一個(gè)下拉列表當(dāng)前選中元素的值傳 入”document.get
3、ElementByldcboEmployees.value”: 第三個(gè)參數(shù)是一個(gè)用戶定義在塊中的 JavaScript 回調(diào)(callback)函數(shù)名?;卣{(diào)(callback)執(zhí)行后, 此函數(shù)最終負(fù)責(zé)頁(yè)面的更新,即最后服務(wù)器端得結(jié)果會(huì)返回 給此參數(shù)指定的函數(shù),設(shè)計(jì)人員在此參數(shù)指定的函數(shù)中編寫(xiě) 代碼實(shí)現(xiàn)頁(yè)面的無(wú)閃爍更新。最后兩個(gè)可選參數(shù)可用來(lái)指定錯(cuò)誤處理函數(shù)(error handler) 和上下文對(duì)象(context object) 其中上下文對(duì)象的作用是啟動(dòng)回調(diào)之前在客戶端計(jì)算的客 戶端腳本。 腳本的結(jié)果傳回客戶端事件處理程序。即第三 個(gè)參數(shù)clientCallback指定的腳本可在此定義,而
4、不必在設(shè) 計(jì)頁(yè)面定義。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ù)的代碼會(huì)自動(dòng)下載到客戶端并通過(guò)標(biāo)簽 添加到頁(yè)面響應(yīng)(pages response)中。WebForm_DoCallback 使用 XmlHttpRequest DOM 對(duì)象 (XmlHttpRequest DOM object)回調(diào)(call back)當(dāng)前頁(yè)面的 URL。
6、與此同時(shí),它會(huì)添加一些額外的隱藏域(hidden field)以便服 務(wù)器區(qū)分更簡(jiǎn)單的輕量級(jí)回調(diào)(callback)請(qǐng)求和一般回傳 (postback)請(qǐng)求。處理請(qǐng)求時(shí),ASP.NET運(yùn)行時(shí)(runtime)標(biāo)識(shí)岀調(diào)用的目標(biāo) 對(duì)象(傳給GetCallbackEventReference的第一個(gè)參數(shù)),確 認(rèn)它實(shí)現(xiàn)了 ICallbackEventHandler接口后調(diào)用 RaiseCallbackEvent 方法:void RaiseCallbackEvent (string eventArgument)eventArgument 一般即是通過(guò) GetCallbackEventReference
7、 指定的頁(yè)面?zhèn)鬟f到服務(wù)器端的輸入數(shù)據(jù),即參數(shù) 2 RaiseCallbackEvent 處理完畢,即通過(guò)調(diào)用 public string GetCallbackResult() 將處理結(jié)果返回給調(diào)用控件,交由客戶端執(zhí)行 GetCallbackEventReference 指定的客戶端腳本 clientcallback,由其完成客戶端刷新。上面說(shuō)過(guò)腳本回調(diào)(script callback)并不適用于所有瀏覽器, 盡管最新的瀏覽器,包括 Internet Explorer 5+, Netscape 6+, and Safari1.2+都能行。Microsoft 在 ASP.NET2.0 中加入了兩
8、個(gè)新的 browser bapabilities :SupportsXmlHttp 與 SupportsCallback 以便開(kāi) 發(fā)人員檢查方案的可行性。一條讓頁(yè)面刷新更快的告誡盡管腳本回調(diào)(script callback)定義在ASP.NET 2.0中,要 使其在ASP.NET 1.1里工作也并不很困難。在ASP.NET 2.0 中,很多服務(wù)器控件(server contro I)借助腳本回調(diào)(script callback)提供了更迅速的頁(yè)面刷新。最突岀的例子也許是GridView控件(GridView control),作 為DataGrid的接班人,選擇性地運(yùn)用腳本回調(diào)(script
9、callback)實(shí)現(xiàn)分頁(yè)顯示記錄。正如前面所說(shuō),腳本回調(diào)(script callback)依賴于文檔對(duì)象模 型(DOM)的 XmlHttpRequest 對(duì)象。在 Internet Explorer 中, 此文檔對(duì)象模型對(duì)象(DOM object)通過(guò)ActiveX控件 (ActiveX control)實(shí)現(xiàn)Microsoft.XmlHttp。在 IE 中瀏覽這樣的頁(yè)面時(shí),你必須適當(dāng)降低安全設(shè)置以允許ActiveX控件(ActiveX control)能被腳本調(diào)用。在其他以同樣 方式實(shí)現(xiàn)XmlHttpRequest文檔對(duì)象模型對(duì)象(DOM object) 的瀏覽器中,這是不必要的。事實(shí)上 基
10、于Mozilla的瀏覽內(nèi)置支持了 HTTP請(qǐng)求功能器, 而沒(méi)用使用ActiveX控件(ActiveX control)這也是在Internet Explorer 7.0 中被寄予厚望的功能。下面簡(jiǎn)單例子可作參考(例子來(lái)源于 高級(jí)編程第 7 版):服務(wù)器端 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/ 這個(gè)代碼的工作流程是怎么樣得呢?首先,點(diǎn)擊按鈕Buttonl后,觸發(fā)test()函數(shù),函數(shù)內(nèi)調(diào)用UseCallBack 函數(shù),可以在此傳入?yún)?shù),傳入的參數(shù)將會(huì)傳給 服務(wù)器端的RaiseCallbackEvent函數(shù)進(jìn)行解析,當(dāng)然,也可以 中途截?cái)噙@個(gè)參數(shù)的傳
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 品牌戰(zhàn)略規(guī)劃作業(yè)指導(dǎo)書(shū)
- 電信行業(yè)網(wǎng)絡(luò)優(yōu)化及增值業(yè)務(wù)拓展方案
- 垃圾焚燒發(fā)電廠項(xiàng)目劃分
- 房地產(chǎn)開(kāi)發(fā)項(xiàng)目可行性研究論文
- 股份制改革實(shí)施路徑研究
- 快遞行業(yè)長(zhǎng)期物流合作協(xié)議
- 針對(duì)提高團(tuán)隊(duì)協(xié)作效率的解決方案
- 房地產(chǎn)項(xiàng)目管理合同管理
- 農(nóng)業(yè)產(chǎn)業(yè)化發(fā)展專項(xiàng)作業(yè)指導(dǎo)書(shū)
- 《油氣儲(chǔ)存企業(yè)安全風(fēng)險(xiǎn)評(píng)估細(xì)則(2025年修訂版)》解讀與培訓(xùn)
- 2025年安徽職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)匯編
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 2024年浙江省中考社會(huì)試卷真題(含標(biāo)準(zhǔn)答案及評(píng)分標(biāo)準(zhǔn))
- 20以內(nèi)退位減法口算練習(xí)題100題30套(共3000題)
- 供應(yīng)商社會(huì)準(zhǔn)則符合性自審問(wèn)卷
- LemonTree中英文歌詞
- 城鎮(zhèn)燃?xì)饧映艏夹g(shù)規(guī)程CJJ T148
- 4925095728國(guó)內(nèi)外中小學(xué)作業(yè)研究綜述
- 外墻粉刷施工方案(完整版)
- 華為-原理圖繪制評(píng)審規(guī)范-checklist
評(píng)論
0/150
提交評(píng)論