使用Anthem.NET快速體驗AJAX非同步呼叫

Anthem.NET是Jason Diamond開發的AJAX Toolkit,
最基本的應用是他的類別庫 Anthem.dll
只要參照這個檔案就可以直接使用Anthem的功能。
Jason提供完整開放的原始碼:
按此下載
下載檔案後需先編譯,步驟很簡單,直接在Visual Studio下打開專案檔(2005),
編譯好把專案目錄\bin\Debug\Anthem.dll複製到你要的地方即可,或是直接參照。

最簡單的運用範例為在Client-side呼叫Server-side的方法:

首先在Server-Side的程式碼中Page_Load()裡將此Page註冊至Anthem.Manager,
然後在要呼叫的方法前宣告屬性 [Anthem.Method]

01 protected void Page_Load(object sender, EventArgs e)
02 {
03 //register for anthem need
04 Anthem.Manager.Register(this);
05 }

06
07 ......
08
09 [Anthem.Method]
10 protected string CallServerSideMethod(string user)
11 {
12 return "You Got It! "+user;
13 }
 

然後在Client-Side的Javascript程式碼中,
加入Anthem_InvokePageMethod去實作呼叫遠端方法

<script type="text/javascript">  
  var user = "Mark";  
  Anthem_InvokePageMethod('CallServerSideMethod', [user], Callback);  
  function Callback(result)  
  {
     alert(result.value);  
  }
</script>

Anthem_InvokePageMethod傳入三種參數依序為
("呼叫的遠端方法名稱", "傳遞的參數陣列", 回呼(callback)的Client-side目的方法名稱)

以上是在WebPage中作非同步呼叫,但若是要在User Control中進行呢?
因為User Control實際在載入時,會將ClientID加至每個控制項的ID前以避免重複,
所以若要使用Anthem的非同步呼叫,則需使用Anthem_InvokeControlMethod
這個方法需要多引入一個ClientID的參數:


Anthem_InvokeControlMethod('<%=ClientID%>', 'GetNewArrivingMsgs',
[var1,var2...], Callback);

需要注意的是''。其中ClientID為變數,
因此必須事先作變數值的指定;指定方式通常在Server-side裡實作。
如複寫OnInit方法去傳遞this.ClientID。可以使用:
Page.ClientScript.RegisterStartupScript(Type type, string key, string script)
這個方法可由伺服端動態產生Script至客戶端取得的頁面,依此原理可以實作很多的應用。

One Comment DotBlogs Tags: AJAX 閱讀數 : 386 訂閱

關連文章

 

回覆

# re: 使用Anthem.NET快速體驗AJAX非同步呼叫
感謝分享,小弟收下了~~~
Left by caubekimo 回覆 on 2008/8/11 上午 09:29

標題*
姓名*
電子郵件 (never displayed)
 
個人網頁
回覆*

登入後使用進階評論
Please add 6 and 6 and type the answer here: