日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

不用組件實(shí)現(xiàn)Ajax效果_AJAX教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:使用AJAX技術(shù)實(shí)現(xiàn)網(wǎng)頁無閃自動(dòng)局部刷新
實(shí)例解決問題: 希望實(shí)現(xiàn)用戶在進(jìn)入系統(tǒng)以后(整個(gè)session的時(shí)效之內(nèi)),如果收到新郵件則發(fā)出聲音提示。 實(shí)現(xiàn)思路: 1.首頁部分: body onload=init('');> // load時(shí)調(diào)用init(us

現(xiàn)在.NET的Ajax組件確實(shí)不少了,微軟的ajax extensions用起來很方便,一個(gè)UpdatePanel就可以搞定一切。不過,可能有些朋友更愿意自己來寫。那么在.NET里,你是否知道ICallbackEventHandler呢?

大家應(yīng)該都知道ASP.NET頁面調(diào)用時(shí)的幾種方式:Postback/Cross-page posting/Server transfer/Callback,如果你還不太了解,你可以看看MSDN:How to: Determine How ASP.NET Web Pages Were Invoked

現(xiàn)在要說的,就是Callback這種調(diào)用方式。
簡單的說,使用Callback可以得到你平常看到那么Ajax效果,即不刷新整個(gè)頁面,只更新其中一個(gè)部分。

使用Callback,只需要做以下4步:

1、在你的頁面中繼承System.Web.UI.ICallbackEventHandler接口。

public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
protected void Page_Load(object sender, EventArgs e)
{
}
#region ICallbackEventHandler Members
public string GetCallbackResult()
{
}
public void RaiseCallbackEvent(string eventArgument)
{
}
#endregion
}

如果你沒有使用code-behind,那你也可以在aspx頁面頂部加入下面的代碼:

<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>

2、在前臺寫一段自定義的javascript,更新頁面

這一段javascript用來更新頁面的某個(gè)局部,就像你平常操作的一樣,寫些document.getElementById("xxx").innerHTML="working on your request...."。

你可能有些迷糊,就得到了嗎?連個(gè)什么XMLHttpRequest都沒有哩……

3、在Page_Load中再注冊一段javascript

string script = Page.Clientscript.GetCallbackEventReference(this, "arg", "GetFlag", "");
Page.Clientscript.RegisterClientscriptBlock(this.GetType(), .......//省略了一大串

上面的GetCallbackEventReference是用來得到客戶端函數(shù)的引用,發(fā)起一個(gè)callback到服務(wù)器端的,你不必知道詳細(xì)內(nèi)容。

你只需要了解:

  • 第一個(gè)參數(shù)填this,用來handle客戶端的callback的,它必須繼承ICallbackEventHandler接口并提供RaiseCallbackEvent方法,我們已經(jīng)在繼承了這個(gè)接口,上面第一點(diǎn)中的代碼也有RaiseCallbackEvent方法,只是還沒有具體寫內(nèi)容呢。
  • 第二個(gè)參數(shù)就是那個(gè) 從客戶端傳到服務(wù)器端的參數(shù)。如果你想要注冊的檢查用戶是否可用,那么這里的值就是用戶輸?shù)哪莻(gè)值。
  • 第三個(gè)參數(shù)是前臺的javascript函數(shù)名,在第二步中我們寫的名字是:GetFlag。當(dāng)數(shù)據(jù)好了,這個(gè)javascript函數(shù)就會用到。
  • 第四個(gè)參數(shù)一般用不上。

返回值:一個(gè)函數(shù)的名字,是客戶端調(diào)用的函數(shù)名。這個(gè)函數(shù)會調(diào)用到服務(wù)器端了。

4、調(diào)用你的函數(shù)。

上面一定是 onclick="callServer()"嗎?呵呵,這要看你了,你在Page.Clientscript.RegisterClientscriptBlock注冊的什么javascript函數(shù)名字,就是什么名字了。(在第3步的第二行code中)

已經(jīng)完了。如果你還是一頭霧水,沒關(guān)系,下面看一個(gè)實(shí)例

分享:Web2.0歲月使用AJAX技術(shù)的十大理由
  保守來說,AJAX在現(xiàn)在是熱得不能再熱的技術(shù)。沒有人能否認(rèn),它擁有大批的支持者。在CNN上,它從二月份的一個(gè)不被看好的詞語到十月份成長成一個(gè)初具雛形的技術(shù)。所以,有必要要看看為什么

來源:模板無憂//所屬分類:AJAX教程/更新時(shí)間:2008-08-22
相關(guān)AJAX教程