AjaxPro使用方法

无意中看到同事用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">

<html xmlns="http://www.w3.org/1999/xhtml" >

<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>

时间: 2024-08-29 00:53:23

AjaxPro使用方法的相关文章

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

前言 上一篇介绍了在webform平台实现ajax的一些方式,并且实现一个基类.这一篇我们来看一个开源的组件:ajaxpro.虽然这是一个比较老的组件,不过实现思想和源码还是值得我们学习的.通过上一篇的介绍,我们知道要调用页面对象的方法,就是靠反射来实现的,关键是整个处理过程,包括反射调用方法.参数映射等.ajaxpro不仅在后台帮我们实现了这个过程,在前台也封装了请求调用的方法,例如ajax的相关方法,用ajaxpro的方法就可以发送异步请求了,不需要自己封装js或者使用js库.接下来就对这个

ajaxpro——js调用后台的方法

前提:添加并引用类库ajaxpro.dll 1.把引用的类库改为自己(如果是自己的话,就不用修改): <%@ Page Language="C#" AutoEventWireup="true" Inherits="ProductList" CodeBehind="ProductList.aspx.cs" ValidateRequest="false" %> 注意顺序 2.去掉后台代码的命名空间或

js调用后台方法 (AjaxPro.2.dll的基本使用)

1. 在web.config文件中的<system.web>加入以下设置 <add verb="POST,GET" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" /> 2. 添加一个页面,页面名称为Defalut.aspx 在后台Defalut.aspx.cs页面写以下代码: protected void Page_Load(object sender,

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

原文发布时间为:2008-10-24 -- 来源于本人的百度文章 [由搬家工具导入] 我用的是AjaxPro.2.dll,然后我想点击那个 “无刷新更新” 那个按钮,实现 无刷新 修改表中的内容 HTML code <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!

前后台方法调用

1.后台调用前台JS方法(带参数) ClientScript.RegisterStartupScript(类型,键,调用的JS方法名(+参数+),是否启用该方法(true or flase)); 例:ClientScript.RegisterStartupScript(typeof(Page), "aa", "SelectLeftPage(" + nRoleId +  ")", true); 2.前台调用后台方法 方法有两种:一种是Ajax方法,

各种AJAX方法的使用比较

转:http://www.cnblogs.com/fish-li/archive/2013/01/13/2858599.html#_label6 AJAX技术经过这么多年的发展,出现了一些框架或类库用于简化开发工作,不同的框架类库的使用方法也各不相同. 现在,再回头看看这些技术,看看这些框架类库,我们能感受到技术在不断地发展,AJAX开发越来越容易了. 本文收集了在ASP.NET平台上,一些具体代表性的AJAX开发方法,我将用实际的示例代码来演示如何使用它们, 让您感受AJAX的进化历程,同时也

ajaxpro 异步调用

AjaxPro一般默认是同步调用,异步调用只需要在方法后面加一个callback函数,直接取value属性即可.例如: MyNameSpace.Page1.getOtherConfig("AutoSubmitMode",function(result){ autoSubmitMode=result.value; });

aspx页面前端使用js 调用aspx.cs后台的方法,不回传

本次使用 Ajax.dll,AjaxPro.dll 两个类库 1.首先添加引用:Ajax.dll,AjaxPro.dll 文件在 Libiary 目录下 2.配置 WebConfig 属性 将 下面2行  放在 httpHandlers 节点里面, 如下 <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/> <add verb

不通过服务器控件时用前端javascript与c#后台交互的方法

一,如果通过前台javascript调用后台aspx里面的函数? 实现某个功能不同的思路会用不同的实现方法,本章仅做抛砖引玉用方法一.参考本博客前文"WebForm实现实时信息提醒功能(Timers与Ajax实现及优劣浅析)"方法二,通过AjaxPro直接调用,里面重点是:             1.在后台Load的时候可以注册你的后台类,例如:AjaxPro.Utility.RegisterTypeForAjax(typeof(MyClass));              2.然