一.AjaxPro的使用
1.在項目中添加引用,瀏覽找到AjaxPro.2.dll文件
注:關於AjaxPro.2.dll網上有得下載
2.在Web.config中的system.web裏面寫入以下代碼
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
</configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
</system.web>
</configuration>
3.在加載事件中,加入
AjaxPro.Utility.RegisterTypeForAjax(typeof(類名));
AjaxPro.Utility.RegisterTypeForAjax(typeof(類名));
4.後臺的方法要用[AjaxPro.AjaxMethod]開頭
5.調用時必須寫清楚
//命名空間名.類名.方法,例如:
AjaxTest._Default.getData();
AjaxTest._Default.getData();
//在後臺寫的無參方法
[AjaxPro.AjaxMethod]
public string getStr()
{
return "hello my friends";
}
//在後臺寫的有參方法
[AjaxPro.AjaxMethod]
public string getString(string str)
{
return str + "Say: hello my friends";
}
[AjaxPro.AjaxMethod]
public string getStr()
{
return "hello my friends";
}
//在後臺寫的有參方法
[AjaxPro.AjaxMethod]
public string getString(string str)
{
return str + "Say: hello my friends";
}
a.同步調用
(1).拖入html控件button
(2).雙擊,自動顯示在.aspx的腳本中
(3).在裏面寫入你要輸入的內容
例:
b.異步調用
(1).拖入html控件button
(2).雙擊,自動顯示在.aspx的腳本中
(3).在裏面寫入你要輸入的內容
例:
注:異步調用時,後臺的方法無法進行重載,否則會出錯。(1).拖入html控件button
(2).雙擊,自動顯示在.aspx的腳本中
(3).在裏面寫入你要輸入的內容
例:
//------------------同步調用無參-----------
function Button1_onclick()
{
var res=WebUI._Default.getStr();
alert(res.value);
}
//------------------同步調用有參------------
function Button2_ //TextBox1爲服務器控件
{
var str=document.getElementById("<%=TextBox1.ClientID%>").value;
var res=WebUI._Default.getStr(str);
alert(res.value);
}
function Button1_onclick()
{
var res=WebUI._Default.getStr();
alert(res.value);
}
//------------------同步調用有參------------
function Button2_ //TextBox1爲服務器控件
{
var str=document.getElementById("<%=TextBox1.ClientID%>").value;
var res=WebUI._Default.getStr(str);
alert(res.value);
}
(1).拖入html控件button
(2).雙擊,自動顯示在.aspx的腳本中
(3).在裏面寫入你要輸入的內容
例:
//-----------------異步調用無參-----------------
function Button3_ {
WebUI._Default.getStr(getStrCallBack);
}
function getStrCallBack(res)
{
alert(res.value);
}
//-----------------異步調用有參-----------------
function Button4_ {
var str=document.getElementById("<%=TextBox1.ClientID %>").value;
WebUI._Default.getString(str,getStringCallBack);
}
function getStringCallBack(res)
{
alert(res.value);
}
function Button3_ {
WebUI._Default.getStr(getStrCallBack);
}
function getStrCallBack(res)
{
alert(res.value);
}
//-----------------異步調用有參-----------------
function Button4_ {
var str=document.getElementById("<%=TextBox1.ClientID %>").value;
WebUI._Default.getString(str,getStringCallBack);
}
function getStringCallBack(res)
{
alert(res.value);
}
二、直接調用
javascript中:<%=後臺方法%>
function says()
{
alert("<%=Say()%>");
}
function del()
{
alert("<%=DeleteByID(8)%>");//DeleteByID(8)後臺方法名
}
{
alert("<%=Say()%>");
}
function del()
{
alert("<%=DeleteByID(8)%>");//DeleteByID(8)後臺方法名
}
三、採用ICallbackEventHandler回調
/**//*
* 對ICallbackEventHandler接口進行聲明,要在客戶端調用服務端代碼而不回發,必須聲明該接口並且實現它的兩個方法:
* RaiseCallbackEvent()、GetCallbackResult()
* RaiseCallbackEvent()的參數是從前臺傳過來的,根據傳來的參數執行不同的代碼並將結果用GetCallbackResult()返回前臺
*/
//必須聲明System.Web.UI.ICallbackEventHandler接口
public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
//定義一個回調的返回值
private string Result;
//定義兩個變量,用來接收頁面傳過來到操作數
private string Num1;
private string Num2;
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 該方法是回調執行的方法,根據參數在這個方法中處理回調的內容,該方法沒有返回值
/// </summary>
/// <param name="eventArgument">此參數是從客戶端傳過來的</param>
public void RaiseCallbackEvent(string eventArgument)
{
//eventArgumeng 爲javascript從客戶端傳遞的參數,本例傳過來三個參數用“/”分割將每個參數取出存入數組
string[] PagParams = eventArgument.Split('/');
Num1 = PagParams[1];
Num2 = PagParams[2];
//根據第一個參數(所選的操作符),調用不同的執行函數
switch (PagParams[0])
{
case "0":
Result = add(); break;
case "1":
Result = sub(); break;
case "2":
Result = multi(); break;
case "3":
Result = division(); break;
}
}
/**//// <summary>
/// 該方法是返回回調的結果給客戶端
/// </summary>
/// <returns></returns>
public string GetCallbackResult()
{
return Result;
}
//一下四個函數是通過RaiseCallbackEvent方法,調用的回調要執行操作的函數
private string add()
{
double addResult = double.Parse(Num1) + double.Parse(Num2);
return addResult.ToString();
}
private string sub()
{
double addResult = double.Parse(Num1) - double.Parse(Num2);
return addResult.ToString();
}
private string multi()
{
double addResult = double.Parse(Num1) * double.Parse(Num2);
return addResult.ToString();
}
private string division()
{
double addresult = double.Parse(Num1) / double.Parse(Num2);
return addresult.ToString();
}
}
* 對ICallbackEventHandler接口進行聲明,要在客戶端調用服務端代碼而不回發,必須聲明該接口並且實現它的兩個方法:
* RaiseCallbackEvent()、GetCallbackResult()
* RaiseCallbackEvent()的參數是從前臺傳過來的,根據傳來的參數執行不同的代碼並將結果用GetCallbackResult()返回前臺
*/
//必須聲明System.Web.UI.ICallbackEventHandler接口
public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
{
//定義一個回調的返回值
private string Result;
//定義兩個變量,用來接收頁面傳過來到操作數
private string Num1;
private string Num2;
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 該方法是回調執行的方法,根據參數在這個方法中處理回調的內容,該方法沒有返回值
/// </summary>
/// <param name="eventArgument">此參數是從客戶端傳過來的</param>
public void RaiseCallbackEvent(string eventArgument)
{
//eventArgumeng 爲javascript從客戶端傳遞的參數,本例傳過來三個參數用“/”分割將每個參數取出存入數組
string[] PagParams = eventArgument.Split('/');
Num1 = PagParams[1];
Num2 = PagParams[2];
//根據第一個參數(所選的操作符),調用不同的執行函數
switch (PagParams[0])
{
case "0":
Result = add(); break;
case "1":
Result = sub(); break;
case "2":
Result = multi(); break;
case "3":
Result = division(); break;
}
}
/**//// <summary>
/// 該方法是返回回調的結果給客戶端
/// </summary>
/// <returns></returns>
public string GetCallbackResult()
{
return Result;
}
//一下四個函數是通過RaiseCallbackEvent方法,調用的回調要執行操作的函數
private string add()
{
double addResult = double.Parse(Num1) + double.Parse(Num2);
return addResult.ToString();
}
private string sub()
{
double addResult = double.Parse(Num1) - double.Parse(Num2);
return addResult.ToString();
}
private string multi()
{
double addResult = double.Parse(Num1) * double.Parse(Num2);
return addResult.ToString();
}
private string division()
{
double addresult = double.Parse(Num1) / double.Parse(Num2);
return addresult.ToString();
}
}