无意中看到同事用AjaxPro用,看到很不错,特长是前后台传输数据特别方便。

最好的教材就是拿到就可以用,方便大家。

以前数据传输用FORM提交,或者在前台用JASON拼接然后通过AJAX方式提交。总之要写好多代码,很不方便。要么页面刷新,要么总是写一件重复代码。

AjaxPro的方便之处就是前台不需要写太多的代码,可以直接跟后台方法进行访问,中间用数据JASON数据传输这一切她都已经帮你做了。网上找了几个教程都感觉不错。现在我把她从配置到例子整理下分享给大家。

一、配置AjaxPro:

1. 下载AjaxPro.2.dll并添加到工程里,如图:

2. 在web.config中添加注册信息

3. 准备测试,在后台Page_Load注册下,如下图:

这样就配置好了。
二、这里只举下个例子,从后台得到字符串,其他情况我会把代码全部加上,相信大家都能看得懂。
后台代码:

前台代码:

也可以不加回调函数,如果不加的话就是异步调用,否则就是同步调用。两者区别就不用说了吧。直接加个BUTTON去调用TestString就可以了。
显示alert message 如下:

下面附上在开发过程中遇到的几种常见情况,欢迎大家扩充:
所有后台代码:
Default.aspx.cs
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
 
namespace AjaxProTest
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) {
                AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
            }
        }
 
        //return string
        [AjaxPro.AjaxMethod]
        public String GetAjaxString(string str)
        {
            return "Hello AjaxPro: " + str + Session.Count;
        }
 
        //return object.
        [AjaxPro.AjaxMethod]
        public BehaviourInfo GetAjaxObject()
        {
            var behaviourInfo = new BehaviourInfo();
            behaviourInfo.Behaviour = "this is test behaviour...";
            return behaviourInfo;
        }
 
        //return datatable.
        [AjaxPro.AjaxMethod]
        public DataTable GetAjaxDatatable()
        {
            var dt = new DataTable("Table_AX");
            //Method 1
            dt.Columns.Add("column0", System.Type.GetType("System.String"));
            //Method 2
            var dc = new DataColumn("column1", System.Type.GetType("System.Boolean"));
            dt.Columns.Add(dc);
 
            //Add rows for DataTable
            //Initialize the row
            DataRow dr = dt.NewRow();
            dr["column0"] = "AX";
            dr["column1"] = true;
 
            dt.Rows.Add(dr);
            return dt;
        }
 
        //return list<string>
        [AjaxPro.AjaxMethod]
        public List<String> GetAjaxListString()
        {
            var list = new List<String> {"abc", "def"};
            return list;
        }
 
        //return list<string>
        [AjaxPro.AjaxMethod]
        public void SetAjaxObj(BehaviourInfo behaviourInfo)
        {
            System.Console.WriteLine(behaviourInfo.Behaviour);
        }
    }
}

DataClass.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Runtime.Serialization;
 
namespace AjaxProTest
{
    [DataContract]
    public class BehaviourInfo
    {
        [DataMember(Order = 0)]
        public string Behaviour { get; set; }
        [DataMember(Order = 1)]
        public int Lev1 { get; set; }
        [DataMember(Order = 2)]
        public int Lev2 { get; set; }
        [DataMember(Order = 3)]
        public bool IsAuto { get; set; }
    }
 
    [DataContract]
    public class User
    {
        [DataMember(Order = 0)]
        public string Name { get; set; }
        [DataMember(Order = 1)]
        public string Address { get; set; }
        [DataMember(Order = 2)]
        public string Sex { get; set; }
    }
}
所有前台代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AjaxProTest._Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<head runat="server">
    <title>Untitled Page</title>
</head>
<script language="javascript">
    //get string
    function TestString() {
        AjaxProTest._Default.GetAjaxString("Rocky", TestStringRetrun);
    }
    function TestStringRetrun(res) {
        alert(res.value);
    }
 
    //get object.
    function TestObject() {
        AjaxProTest._Default.GetAjaxObject(TestObjectReturn);
    }
 
    function TestObjectReturn(res) {
        alert(res.value.Behaviour);
    }
 
    //get Datatable.
    function TestDatatable() {
        AjaxProTest._Default.GetAjaxDatatable(TestDatatableReturn);
    }
 
    function TestDatatableReturn(res) {
        var dt = res.value;
        alert("column0:" + dt.Rows[0].column0 + "\n column1:" + dt.Rows[0].column1);
    }
     
    //get List<String>
    function TestListString() {
        AjaxProTest._Default.GetAjaxListString(TestListStringReturn);
    }
 
    function TestListStringReturn(res) {
        var list = res.value;
        var str = "";
        for(var i=0;i<list.length;i++){
            str = str + list[i] + "\t";
        }
        alert("List:" + str);
    }
 
    //...get其他类推
 
    //set demo
    function SetObject() {
        var Obj = new Object();
        Obj.Behaviour = "Rocky...";
        Obj.Lev1 = 1;
        Obj.Lev2 = 2;
        Obj.IsAuto = true;
        AjaxProTest._Default.SetAjaxObj(Obj);
    }
</script>
<body>
    <form id="form1" runat="server">
    <div>
        Get something demo<br>
        <input type="button" value="TestString" onclick="TestString();"/>  
        <input type="button" value="TestObject" onclick="TestObject();"/>  
        <input type="button" value="TestDatable" onclick="TestDatatable();"/>  
        <input type="button" value="TestListString" onclick="TestListString();"/>
        <hr />
        Set something demo<br />
        <input type="button" value="SetObject" onclick="SetObject();"/>
    </div>
    </form>
</body>
</html>

AjaxPro使用方法的更多相关文章

  1. c# js调用AjaxPro方法出错解析

    公司的项目的框架中有一部分用到了AjaxPro这个方法,看到这个方法的我一脸懵逼,老老实实去百度了一下. AjaxPro是.NET平台下的一个回调式AJAX框架,使用简单,功能强大.顾名思义ajax, ...

  2. 编写轻量ajax组件02-AjaxPro浅析

    前言 上一篇介绍了在webform平台实现ajax的一些方式,并且实现一个基类.这一篇我们来看一个开源的组件:ajaxpro.虽然这是一个比较老的组件,不过实现思想和源码还是值得我们学习的.通过上一篇 ...

  3. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  4. AjaxPro.dll,asp.net 前台js调用后台方法(无刷新)

    1.什么是Ajax Ajax是异步Javascript和XML(Asynchronous JavaScript and XML)的英文缩写."Ajax"这个名词的发明人是Jesse ...

  5. ajaxpro——js调用后台的方法

    前提:添加并引用类库ajaxpro.dll 1.把引用的类库改为自己(如果是自己的话,就不用修改): <%@ Page Language="C#" AutoEventWire ...

  6. 通过([AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)] )在前台html页面调用cs方法

    app_code中CS代码( Cs页面文件名public class ajaxGET): [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement ...

  7. AjaxPro.2.dll使用方法简介

    1.添加对 AjaxPro.2.dll 的引用 2.在 webconfig 中 system.web 节点下 进行如下配置 <httpHandlers> <add verb=&quo ...

  8. Ajaxpro使用的方法

    1.下载Ajaxpro.2.dll 程序中引用 2.web.config配置 <?xml version="1.0" encoding="utf-8"?& ...

  9. ajaxpro实现无刷新更新数据库【简单方法】

    原文发布时间为:2008-10-24 -- 来源于本人的百度文章 [由搬家工具导入] 我用的是AjaxPro.2.dll,然后我想点击那个 “无刷新更新” 那个按钮,实现 无刷新 修改表中的内容 HT ...

随机推荐

  1. <select>改造成<s:select>实现表单的回显功能

    初始: <select name="viewType"> <option value="0">全部主题</option> & ...

  2. android知乎小圆圈刷新效果

    前几天看到包括知乎在内的很多应用都使用到了一种小圆圈划动刷新的效果,仔细查了一下,原来是android v7包里面最新的刷新效果.使用起来也是十分简单的. 首先先建立一个activity,在布局文件里 ...

  3. Android Activity切换动画overridePendingTransition

    Activity在切换或者是退出的时候能够使用渐入,滑动,缩放等动态效果.使用的就是方法overridePendingTransition,能够直在Activity其中直接调用. overridePe ...

  4. C++ 不支持模版的分离式编译

    1.C++不支持模版的分离式编译,为什么? C++是分别,单独编译,对于每个cpp文件,预编译为编译单元,这个编译单元是自包含文件,编译的时候,不需要其他的文件,编译好了,生成obj文件,然后连接成e ...

  5. uva 11983 Weird Advertisement 扫描线

    Weird Advertisement Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/probl ...

  6. Codeforces Round #327 (Div. 2) B. Rebranding 水题

    B. Rebranding Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/591/problem ...

  7. S5PV210开发系列四_uCGUI的移植

    S5PV210开发系列四 uCGUI的移植 象棋小子          1048272975 GUI(图形用户界面)极大地方便了非专业用户的使用,用户无需记忆大量的命令,取而代之的是能够通过窗体.菜单 ...

  8. leetcode -- Merge k Sorted Lists add code

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. [ ...

  9. 一个坐标点围绕任意中心点旋转--C#实现

    假设对图片上任意点(x,y),绕一个坐标点(rx0,ry0)逆时针旋转RotaryAngle角度后的新的坐标设为(x', y'),有公式: x'= (x - rx0)*cos(RotaryAngle) ...

  10. 本地计算机上的XXX服务启动后停止。某些服务在未由其它服务或程序使用时将自动停止。咋整?

    用C#写个windows服务,安装部署后去启动时,提示说“本地计算机上的XXX服务启动后停止.某些服务在未由其它服务或程序使用时将自动停止”.咋整?就像下面酱紫: 度娘说不知道咋整,我想把程序附加到w ...