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]
然後在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至客戶端取得的頁面,依此原理可以實作很多的應用。