ASP.NET AjaxPro的應用
1、首先下載AjaxPro組件。並將AjaxPro.dll引用到網站(或項目)。
2、修改Web.config。在 <system.web> 元素中添加以下代碼。
<configuration>
<system.web>
<httpHandlers>
<!-- Register the ajax handler -->
<add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>
</system.web>
</configuration>
3、對AjaxPro在頁Page_Load事件中進行運行時註冊。如:
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));//這的_Default是指頁面
類的類名。如是放在命名空間,則需要寫上完整的命名空間(如:namespaces._Default)
}
4、建立伺服器端方法。只要給一個方法加上[AjaxPro.AjaxMethod]標記,
該方法就變成一個AjaxPro可進行影射調用的方法。如下:
[AjaxPro.AjaxMethod]
public string getValue(int a,int b)
{
//該方法我們將實現從用戶端傳入兩個數,在伺服器端相加計算後返回到用戶端。
return Convert.ToString(a+b);
}
5、用戶端調用。
<script language="javascript">
function getValue(){
_Default.getValue(1,2,getGroups_callback);//該處即調用伺服器端的_Default.getValue方法。
這在裡邊需要指定個回呼函數,以接受伺服器端處理完後返回用戶端結果。
form1.TextBox1.value="123";
}
//這個方法使用者接受並處理伺服器端返回的結果。
function getGroups_callback(response){
var dt=response.value;
alert(dt);
}
</script>
到這一個簡單,但已是一個完整的AjaxPro的使用了。
當然AjaxPro 還可做很多更實用的,更強大的功能。這個僅做個拋磚引玉。其它的改天整理後再放上來。
兩者不同之處:
請各位注意,Ajax.net實際有AjaxPro.dll和Ajax.dll兩個版本,這兩個版本使用上雖然差不多,但還是有區別的,主要的區別在下面兩點
(1)web.config設定檔不一樣
Ajax.dll的設定檔寫法為
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
AjaxPro.dll的設定檔寫法為
<add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
(2)調用伺服器方法的時候方式不一樣,有很多朋友就是因為這個原因,發現命名空間找不到或者對象未定義引用Ajax.dll的時候,調用伺服器方法不要加命名空間,應用AjaxPro.dll的時候,調用伺服器方法需要加命名空間。
例如當版面設定為這種設定的時候
<%@ Page language="c#" Codebehind="Test.aspx.cs" AutoEventWireup="false" Inherits="Web.Test" %>
用戶端調用方式:
Ajax.dll為
var response=Test.GetServerMethod();
alert(response.value);
AjaxPro.dll為
var response=Web.Test.GetServerMethod();
alert(response.value);
--------------------------------------------------------------------------------------------------------------------------------
<add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>