您的位置:首页 > 其它

AJAXPro用法

2012-03-28 14:54 369 查看
一.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> 3.在加载事件中,加入
可以类开头加入:[AjaxPro.AjaxNamespace("Qzb")] ,Qzb为别名

AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));

4.后台的方法要用[AjaxPro.AjaxMethod]开头 5.调用时必须写清楚 //命名空间名.类名.方法,例如:
AjaxTest._Default.getData();6.调用可分两中方法(同步调用,异步调用)


//在后台写的无参方法


[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).在里面写入你要输入的内容
例:
//------------------同步调用无参-----------
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);
}b.异步调用
(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);
}注:异步调用时,后台的方法无法进行重载,否则会出错。

二、直接调用
javascript中:<%=后台方法%>
function says()
{
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();


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: