2. 還有一種就是用微軟專門為Ajax開發(fā)的控件包,叫作ASP.NET AJ" />
這是Ajax.dll無刷新組件,無刷新組件
1. 有直接用框架的:Ajaxpro和Ajax,這兩種我用過了,覺得不錯
2. 還有一種就是用微軟專門為Ajax開發(fā)的控件包,叫作ASP.NET AJAX Control Toolkit,這個我沒太研究,網(wǎng)上有相關(guān)資料,想知道的可以自己去查,里面有很多現(xiàn)成的控件可以實(shí)現(xiàn)AJAX。
以上三種是我收集到的一些AJAX的實(shí)現(xiàn)方法,我要講的是第一種方法的應(yīng)用,因?yàn)榈谝环N能叫你明白AJAX的運(yùn)行原理,比較適合初學(xué)者。
我主要講Ajaxpro,這是個組件,必須去網(wǎng)上下載,其實(shí)就是一個Ajaxpro.dll文件,注意,網(wǎng)上有兩種一種叫Ajax.dll一種叫 Ajaxpro.dll,這兩種功能上是一樣的,就是添加引用的語句有些不同,下面我會分別說的。其實(shí)用AJAX都要下相關(guān)組件的,開始我也不習(xí)慣下什么插件,可后來還是下了,不下不行呀。我下到的是Ajax.dll,所以講時以Ajax.dll為準(zhǔn)。
應(yīng)用篇,這以下的東西會借鑒網(wǎng)上其他人的文章,在這里聲明一下
1.先把Ajax.dll添加引用到項(xiàng)目中,別告訴我不會,如果連這個也不會就太那個了,和添加其他DLL一樣,在項(xiàng)目上右擊,菜單上有個[添加引用],然后一步一步把那個.DLL文件添加進(jìn)來,之后你會在項(xiàng)目的引用中看到那個Ajax.dll就是添加成功了
2.修改Web.config。在 <system.web> 元素中添加以下代碼。這里的Ajax.dll和Ajaxpro.dll引用方法是不一樣的,一定要注意
<configuration>
<system.web>
<httpHandlers>
<!-- Ajax.dll的配置文件寫法為,我下載到的是這個 -->
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
<!-- AjaxPro.dll的配置文件寫法為,根據(jù)你下載到的DLL文件選擇不同的配置語句-->
<add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>
</system.web>
</configuration>
如果是IIS7,則需要在<system.webServer></system.webServer>里加上<add name="ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
3對AjaxPro用到的頁P(yáng)age_Load事件中進(jìn)行運(yùn)行時注冊。如:
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(_Default));//是Ajax.dll的
AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));//Ajaxpro.dll的
}
//這的_Default是指頁面類的類名,就是這個頁面的名字。如是放在命名空間,則需要寫上完整的命名空間(如:namespaces._Default)
4. 創(chuàng)建服務(wù)器端方法
[Ajax.AjaxMethod]//這句一定要有,如果你是Ajaxpro.dll就寫成[AjaxPro.AjaxMethod]
public string getValue(int a,int b)
{
//該方法我們將實(shí)現(xiàn)從客戶端傳入兩個數(shù),在服務(wù)器端相加計(jì)算后返回到客戶端。這里可以寫在原來的頁后臺中也可以單獨(dú)寫一個類。
return Convert.ToString(a+b);//這里返回的就是前臺得到的值,反正參數(shù)已經(jīng)進(jìn)CS文件了,想怎么操作就怎么操作,包括讀庫都可以。
5. 客戶端調(diào)用。
<%@ Page language="c#" Codebehind="WebPage1.aspx.cs" AutoEventWireup="false" Inherits="Web.WebPage1" %>
<script language="javascript">
function getValue()
{
//這里如果是AjaxPor.dll就加Web._Default.getValue,如果是Ajax.dll就不用加命名空間如下
_Default.getValue(1,2,getGroups_callback);//該處即調(diào)用服務(wù)器端的_Default.getValue方法。
//_Default就是寫getValue的那個類,如果寫在本頁CS里就是WebPage1.getValue,1和2是參數(shù)。
//這在里邊getGroups_callback指定的是個回調(diào)函數(shù),以接受服務(wù)器端處理完后返回客戶端結(jié)果。
}
//這個方法用戶接受并處理服務(wù)器端返回的結(jié)果。
function getGroups_callback(response)
{
var dt=response.value;//這個值就是最終傳回來的值,想怎么用就怎么用,反正回前臺了。
document.getElementById("Div_1").innerHTML=dt;
}
</script>
<body>
<div id="Div_1"> </div>
<button </botton>
</body>