首先,要先引用一個類庫AjaxPro2.dll,
然後再頁面的後台代碼中註冊Ajax,並做一個ServerService的類,並在類的方法上貼上[AjaxMethod]的標籤
AjaxPro.Utility.RegisterTypeForAjax(typeof(ServerService));//註冊
ServerService類:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// ServerService 的摘要說明
/// </summary>
[System.Serializable]
public class SelectItem
{
private string value;
private string text;
public string Text
{
get { return text;}
set { text = value;}
}
public string Value
{
get { return value;}
set { value = value;}
}
}
public class ServerService
{
public ServerService()
{
//
// TODO: 在此處添加建構函式邏輯
//
}
// 返回伺服器上的時間
[AjaxPro.AjaxMethod]
public string GetServerTime()
{
System.Threading.Thread.Sleep(6000);
return DateTime.Now.ToLongTimeString();
}
[AjaxPro.AjaxMethod]
public void Receive(string message)
{
System.Collections.Generic.List<string> list
= HttpContext.Current.Application["Reply"] as System.Collections.Generic.List<string>;
list.Add(message);
}
[AjaxPro.AjaxMethod]
public string[] GetAllReply()
{
System.Collections.Generic.List<string> list
= HttpContext.Current.Application["Reply"] as System.Collections.Generic.List<string>;
return list.ToArray();
}
[AjaxPro.AjaxMethod]
public SelectItem[] GetItems(string id)
{
// 產生類比的資料
SelectItem[] items = new SelectItem[8];
for (int i = 0; i < items.Length; i++)
{
items[i] = new SelectItem();
items[i].Value = string.Format("{0}00{1}", id, i);
items[i].Text = string.Format("項目 - {0}", i);
}
return items;
}
}
放一個Global檔案:
<%@ Application Language="C#" %>
<script runat="server">
void Application_Start(object sender, EventArgs e)
{
// 在應用程式啟動時啟動並執行代碼
System.Collections.Generic.List<string> list
= new System.Collections.Generic.List<string>();
HttpContext.Current.Application["Reply"] = list;
}
void Application_End(object sender, EventArgs e)
{
// 在應用程式關閉時啟動並執行代碼
}
void Application_Error(object sender, EventArgs e)
{
// 在出現未處理的錯誤時啟動並執行代碼
}
void Session_Start(object sender, EventArgs e)
{
// 在新會話啟動時啟動並執行代碼
}
void Session_End(object sender, EventArgs e)
{
// 在會話結束時啟動並執行代碼。
// 注意: 只有在 Web.config 檔案中的 sessionstate 模式設定為
// InProc 時,才會引發 Session_End 事件。如果會話模式設定為 StateServer
// 或 SQLServer,則不會引發該事件。
}
</script>
頁面,要引用jQuery.min.js檔案:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無標題頁</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input type="button" value="擷取伺服器上的時間" onclick="getServerTime();" />
</div>
</form>
<script type="text/javascript">
function getServerTime()
{
/*
// 同步方式
var result = ServerService.GetServerTime();
alert( result.value );
*/
// 非同步方式
ServerService.GetServerTime(
function( result )
{
alert( result.value );
}
);
}
</script>
</body>
</html>