AjaxPro使用方法
无意中看到同事用AjaxPro用,看到很不错,特长是前后台传输数据特别方便。
最好的教材就是拿到就可以用,方便大家。
以前数据传输用FORM提交,或者在前台用JASON拼接然后通过AJAX方式提交。总之要写好多代码,很不方便。要么页面刷新,要么总是写一件重复代码。
AjaxPro的方便之处就是前台不需要写太多的代码,可以直接跟后台方法进行访问,中间用数据JASON数据传输这一切她都已经帮你做了。网上找了几个教程都感觉不错。现在我把她从配置到例子整理下分享给大家。
一、配置AjaxPro:
1. 下载AjaxPro.2.dll并添加到工程里,如图:

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





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使用方法的更多相关文章
- c# js调用AjaxPro方法出错解析
公司的项目的框架中有一部分用到了AjaxPro这个方法,看到这个方法的我一脸懵逼,老老实实去百度了一下. AjaxPro是.NET平台下的一个回调式AJAX框架,使用简单,功能强大.顾名思义ajax, ...
- 编写轻量ajax组件02-AjaxPro浅析
前言 上一篇介绍了在webform平台实现ajax的一些方式,并且实现一个基类.这一篇我们来看一个开源的组件:ajaxpro.虽然这是一个比较老的组件,不过实现思想和源码还是值得我们学习的.通过上一篇 ...
- javaSE27天复习总结
JAVA学习总结 2 第一天 2 1:计算机概述(了解) 2 (1)计算机 2 (2)计算机硬件 2 (3)计算机软件 2 (4)软件开发(理解) 2 (5) ...
- AjaxPro.dll,asp.net 前台js调用后台方法(无刷新)
1.什么是Ajax Ajax是异步Javascript和XML(Asynchronous JavaScript and XML)的英文缩写."Ajax"这个名词的发明人是Jesse ...
- ajaxpro——js调用后台的方法
前提:添加并引用类库ajaxpro.dll 1.把引用的类库改为自己(如果是自己的话,就不用修改): <%@ Page Language="C#" AutoEventWire ...
- 通过([AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)] )在前台html页面调用cs方法
app_code中CS代码( Cs页面文件名public class ajaxGET): [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement ...
- AjaxPro.2.dll使用方法简介
1.添加对 AjaxPro.2.dll 的引用 2.在 webconfig 中 system.web 节点下 进行如下配置 <httpHandlers> <add verb=&quo ...
- Ajaxpro使用的方法
1.下载Ajaxpro.2.dll 程序中引用 2.web.config配置 <?xml version="1.0" encoding="utf-8"?& ...
- ajaxpro实现无刷新更新数据库【简单方法】
原文发布时间为:2008-10-24 -- 来源于本人的百度文章 [由搬家工具导入] 我用的是AjaxPro.2.dll,然后我想点击那个 “无刷新更新” 那个按钮,实现 无刷新 修改表中的内容 HT ...
随机推荐
- spring事务注解
@Transactional只能被应用到public方法上, 对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能. Spring使用声明式事务处理,默认 ...
- log_bin_trust_function_creators错误解决
log_bin_trust_function_creators错误解决 当有mysql本地或远程建立function或procedure时报上面的错误 经试验是log_bin_trust_fun ...
- ADO.NET 快速入门(三):从存储过程获取输出参数
一些存储过程通过参数返回值.当参数在SQL表达式或者存储过程中被定义为“输出”,参数值会返回给调用者.返回值存储在 OleDbCommand 或者 SqlCommand 对象的参数集合的参数里. ...
- php 算法之切割数组,不用array_chunk(),算法之二,取数组的差值,不用array_diff()
用php写算法切割数组,不用array_chunk();算法例如以下所看到的. <?php //$array 数组 //$size 每一个数组的个数 //每一个数组元素是否默认键值 functi ...
- 学习JSONP
最近自己研究 跨域调用js,然后 发现 有jsonp 这种技术,在Jquery中可以使用,于是 研究下原理 发现: 其实 就是 利用<script>的跨域访问的能力. 调用 服务端 返回的 ...
- SAP BW顾问如何保持市场竞争力
跟大部分电工一样,SAP顾问也经常有迷茫的时候.因为,这个世界变化实在太快了.每一个电工,总是在担心自己会不会被飞速发展的技术所淘汰.那么,作为 一个BW顾问,应该如何保持市场竞争力呢?我觉得需要两个 ...
- Binder机制1---Binder原理介绍
1.Binder通信机制介绍 这篇文章会先对照Binder机制与Linux的通信机制的区别,了解为什么Android会另起炉灶,採用Binder.接着,会依据Binder的机制,去理解什么是Servi ...
- hibernate 实体关系映射笔记
@经常使用属性说明: @Entity:实体类 @Table:指定相应数据表 @Id:主键,使用能够为null值的类型,假设实体类没有保存到数据库是一个暂时状态 @Col ...
- Xcode8中Swift3.0适配问题
写在前面 收到一些小伙伴的来信,觉得可能下边没有表达清楚,先把大家关心的要点在此进行总结,有兴趣的可以看看下边的研究过程,没兴趣的直接看这段即可. Xcode8支持Swift2.3和Swift3.0两 ...
- Dia Diagram Mac OSX Yosemite Fix 闪退 xterm
[转]http://navkirats.blogspot.hk/2014/10/dia-diagram-mac-osx-yosemite-fix-i-use.html I use the Dia to ...