.net中AjaxPro的简单使用
1.在项目中添加引用,浏览找到AjaxPro.2.dll文件
2.在Web.config中写入以下代码
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
3.在加载事件中,加入
AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));
例
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxProExample));//这的AjaxProExample是指页面
}
4.写的方法都要用
[AjaxPro.AjaxMethod]开头,然后在写方法
5.调用时必须写清楚
命名空间名.类名.方法,例:AjaxProExample.Add();
6.调用可分两中方法(同步调用,异步调用)
同步调用 :
[AjaxPro.AjaxMethod]
public string getStr()
{
return "hello my friends";
}
//在后台写的有参方法
[AjaxPro.AjaxMethod]
public string getString(string str)
{
return str + " Say: hello my friends";
}
前台代码:
if (len == 0) {
var res = AjaxProExample.getStr().value;//同步调用无参
alert(res);
} else if (len == 1) {
if (arguments[0] == "") {
alert("内容不能为空");
} else {
var res = AjaxProExample.getString(arguments[0]).value;//同步调用有参
alert(res);
}
}
}
异步调用:
[AjaxPro.AjaxMethod]
public int Add(int a, int b)
{
return a + b;
}
//前台代码
function AddNum() {
var a = document.getElementById("txt1").value;
var b = document.getElementById("txt2").value;
if (a == "" || b == "") {
alert("请输入合法的数值");
return;
}
//var res = AjaxProExample.Add(a, b).value; //调用后台代码后直接返回数据,不用显示执行回调函数(同步调用)
var res = AjaxProExample.Add(a, b, disp_callback); //调用后台代码后通过回调函数来显示返回的数据(异步调用)
}
function disp_callback(response) {
alert("累计求和: " + response.value);
}
7.调用对象
}
//后台
[AjaxPro.AjaxMethod]
public PersonInfo getClass()
{
PersonInfo p = new PersonInfo("张三", 25, "男");
return p;
}
//------------------同步调用对象-----------
function Button5_onclick() {
var res = AjaxProExample.getClass().value;
alert("姓名:" + res.Name + "年龄:" + res.Age + "性别:" + res.Sex);
}
//------------------异步调用对象-----------
function Button6_onclick() {
AjaxProExample.getClass(getClassCallBack);
}
function getClassCallBack(response) {
var res = response.value;
alert("姓名:" + res.Name + " 年龄:" + res.Age + " 性别:" + res.Sex);
}
8.数据集的使用//后台代码
public DataTable getData()
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Telphone");
DataRow dr = dt.NewRow();
dr["Name"] = "李四";
dr["Telphone"] = "189********";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "王五";
dr["Telphone"] = "189*********";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "张三";
dr["Telphone"] = "189*********";
dt.Rows.Add(dr);
return dt;
}
//前台
function Button7_onclick() {
var dataTable = AjaxProExample.getData().value;
var strHtml = "";
strHtml += '<table style ="border-collapse:collapse ; border-color:Gray ;" border="1px">';
strHtml += ' <tr>';
strHtml += ' <td>姓名</td>';
strHtml += ' <td>手机号</td>';
strHtml += ' </tr>';
for (var i = 0; i < dataTable.Rows.length; i++) {
strHtml += ' <tr>';
strHtml += ' <td>' + dataTable.Rows[i].Name + '</td>';
strHtml += ' <td>' + dataTable.Rows[i].Telphone + '</td>';
strHtml += ' </tr>';
}
strHtml += ' </table>';
var divDataTable = document.getElementById("divDataTable");//一个div控件
divDataTable.innerHTML = strHtml; //
}