苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 11623|回复: 0

[Ajax] AjaxPro怎么传对象参数

[复制链接]
发表于 2012-11-10 18:16:44 | 显示全部楼层 |阅读模式
AjaxPro向C#方法传对象,也可以说是AjaxPro将对象传向C#方法。意思就是如果你的C#方法的参数是对象的话应该怎么传
比如我的方法如下:
[code=csharp] [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)
    {
         //这里是方法实现
    }[/code]
那么在前台应该怎么传呢,其实很简单啊,大家看一下我的JS方法就知道了
[code=html]$(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)
    }
}[/code]
当然我必须得提供一下我的createParameter方法,也就是这个方法来完成的Obj对象
[code=html]/// <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) + ')';
}[/code]

好了,大家如果想使用的话就在你的查询条件上增加一个条件就行了
比如
ajax='true' 代表iint和String
ajax='true_d' 时间类型
ajax='true_f'  浮点类型,和decimal类型
例子
[code=html] <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>[/code]
执行一下看看效果吧
QQ截图20121110181452.png
总结一下:

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

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

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


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 19:12

© 2014-2021

快速回复 返回顶部 返回列表