首页 > 代码库 > AjaxPro使用方法
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="http://www.mamicode.com/TestString" onclick="TestString();"/> < input type="button" value="http://www.mamicode.com/TestObject" onclick="TestObject();"/> < input type="button" value="http://www.mamicode.com/TestDatable" onclick="TestDatatable();"/> < input type="button" value="http://www.mamicode.com/TestListString" onclick="TestListString();"/> < hr /> Set something demo< br /> < input type="button" value="http://www.mamicode.com/SetObject" onclick="SetObject();"/> </ div > </ form > </ body > </ html > |
AjaxPro使用方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。