zoukankan      html  css  js  c++  java
  • AjaxPro怎么传对象参数

       C#论坛同步地址: http://www.cckan.net/thread-1065-1-1.html

    AjaxPro向C#方法传对象,也可以说是AjaxPro将对象传向C#方法。意思就是如果你的C#方法的参数是对象的话应该怎么传
    比如我的方法如下:

     [AjaxMethod()]
        /// <summary>
        /// 查询用户信息
        /// </summary>
        /// <param name="model">用户对象</param>
        /// <param name="_currentpage">当前页</param>
        /// <param name="_pagesite">每页行数</param>
        /// <returns></returns>
        public DataSet sp_select_users(Sys_Users model, int _currentpage, int _pagesite)
        {
             //这里是方法实现
        }
    

     那么在前台应该怎么传呢,其实很简单啊,大家看一下我的JS方法就知道了

    $(function () {
    
        $("#btnSelect").click(function () {
            selectuser();
        });
    });
    
    function selectuser() {
        //生成参数对象Obj
        var Obj = createParameter();
       //直接传Obj对象过去就行了
        var result = UserSelect.sp_select_users(Obj, 1, 10);
    //下面是取到数据之后大家可以不关注
        if (result.value) {
            var ds = result.value;
            var table = ds.Tables[0];
            var pagecount = ds.Tables[1].Rows[0].pagecount;
            var sb = "<table width=\"90%\" align=\"center\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"
            sb = sb + "<tr>"
            for (var i = 0; i < table.Columns.length; i++) {
                sb = sb + "<td>" + table.Columns.Name + "</td>";
            }
            sb = sb + "</tr>"
            //Rows
            for (var i = 0; i < table.Rows.length; i++) {
                var dr = table.Rows;
                sb = sb + "<tr onmouseover=\"this.style.backgroundColor='#F3F7F8'\" " +
                            "onmouseout=\"this.style.backgroundColor=''\">"
    
                for (var j = 0; j < table.Columns.length; j++) {
                    sb = sb + "<td>" + eval('dr.' + table.Columns[j].Name) + "</td>";
                }
                sb = sb + "</tr>";
            }
            sb = sb + ' </table>';
    
            $("#sysusertable").html(sb)
        }
    }
    

     当然我必须得提供一下我的createParameter方法,也就是这个方法来完成的Obj对象

    /// <reference path="jquery-1.4.1-vsdoc.js" />
    /**
    *作者:苏飞
    */
    function createParameter() {
        var objStr = "var Obj = new Object();";
        //转字符和整数类型
        $("[ajax='true']").each(function () {
            var value = $(this).attr("value");
            if (value == "") {
                value = "-1";
            }
            objStr = objStr + "Obj." + $(this).attr("id") + " = \"" + value + "\";";
        });
        //转日期类型
        $("[ajax='true_d']").each(function () {
            var value = $(this).attr("value");
            if (value == "") {
                value = "2000-01-01";
            }
            objStr = objStr + "Obj." + $(this).attr("id") + " = " + getdate(value) + ";";
        });
        //转Float类型
        $("[ajax='true_f']").each(function () {
            var value = $(this).attr("value");
            if (value == "") {
                value = "-1.00";
            }
            objStr = objStr + "Obj." + $(this).attr("id") + " = parseFloat('" + value + ".00');";
        });
        eval(objStr);
        return Obj;
        //到这里已经生成了Obj对象
    }
    function getdate(strdate) {
        return 'new Date(' + strdate.replace(/\d+(?=-[^-]+$)/,
         function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')';
    }
    

     好了,大家如果想使用的话就在你的查询条件上增加一个条件就行了
    比如
    ajax='true' 代表iint和String
    ajax='true_d' 时间类型
    ajax='true_f'  浮点类型,和decimal类型
    例子

    View Code
     <form id="form1" runat="server">
        <div>
            <table cellspacing="0" cellpadding="0" width="100%" border="0">
                <tr>
                    <td height="25" width="30%" align="right">
                        分组ID :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="userclass_id" ajax='true' runat="server" Width="200px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td height="25" width="30%" align="right">
                        角色ID :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="role_id" ajax='true' runat="server" Width="200px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td height="25" width="30%" align="right">
                        代理ID sys_agent :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="agent_id" ajax='true' runat="server" Width="200px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td height="25" width="30%" align="right">
                        用户名 :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="username" ajax='true' runat="server" Width="200px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td height="25" width="30%" align="right">
                        电子邮件 :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="email" ajax='true' runat="server" Width="200px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td height="25" width="30%" align="right">
                        余额 :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="balance" ajax='true_f' runat="server" Width="200px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td height="25" width="30%" align="right">
                        开始时间 :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="st" ajax='true_d' runat="server" Width="198px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td height="25" width="30%" align="right">
                        结束时间 :
                    </td>
                    <td height="25" width="*" align="left">
                        <asp:TextBox ID="et" ajax='true_d' runat="server" Width="200px"></asp:TextBox>
                    </td>
                </tr>
            </table>
        </div>
        <input id="btnSelect" type="button" value="button" />
        <br/>
         <br/>
        <asp:Table ID="sysusertable" runat="server">
        </asp:Table>
        </form>

    下面大家看看效果吧

    总结一下:

    1.在参数的时候可以和后台对象的个数不一样

    2.参数的数据类型必须一样。

    3.只有整数和String类型的不需要转化,其它的都必须强制转化类型才行。

    本人的博客不再维护从2013年就不再维护了 需要我帮助的朋友请到我的个人论坛 http://www.sufeinet.com 进行讨论,感谢大家对我的支持!
  • 相关阅读:
    PHP基本的语法以及和Java的差别
    Linux 性能測试工具
    【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
    【Oracle 集群】Oracle 11G RAC教程之集群安装(七)
    【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之缓存融合技术和主要后台进程(四)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
    Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
    【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
  • 原文地址:https://www.cnblogs.com/sufei/p/2764335.html
Copyright © 2011-2022 走看看