• .net中AjaxPro的简单使用


    1.在项目中添加引用,浏览找到AjaxPro.2.dll文件

    2.Web.config中写入以下代码

    <httpHandlers>
    <add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
    </httpHandlers>

    3.在加载事件中,加入

    AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));

    protected void Page_Load(object sender, EventArgs e) 

    {
            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";

        }  


    前台代码: 

     function SayHello() {
                var len = arguments.length; //重载
                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.调用对象 


     
    public class PersonInfo
    {
        private int _Age = 0;
        private string _Name = "";
        private string _Sex = "";
        public int Age
        {
            get { return _Age; }
            set { _Age = value; }
        }    
        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }   
        public string Sex
        {
            get { return _Sex; }
            set { _Sex = value; }
        }
    public PersonInfo(string name,int age,string sex)
    {
            Name = name;
            Age = age;
            Sex = sex;
    }

        
    //后台
    [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.数据集的使用//后台代码

    [AjaxPro.AjaxMethod]
        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; //

            }
  • 相关阅读:
    微服务架构:自动扩展简介
    作为软件开发人员需要的技术技能
    NetStat
    IntegerCache缓存占用堆、栈、常量池的问题,自动拆装箱的基本概念,Integer==int时的问题说明
    Docker常用命令速查手册(华贵铂金版)
    深入剖析Windows专业版安装Docker引擎和Windows家庭版Docker引擎安装的区别
    一个有趣的现象,既然是知识产出还是有必要声明下原创最好【虾扯蛋系列】
    MySql CPU彪高到百分之1000的排查思路
    准备一个大菜
    常见的 由于未调整服务器 ulimit 而引起的内存溢出问题
  • 原文地址:https://www.cnblogs.com/yourancao520/p/2360988.html
Copyright © 2020-2023  润新知