WebForm项目中ajax调用aspx.cs中的方法

最近几天老古董项目需要改造一些页面,用ajax调用后台方法,为了不增删太多东西,就利用了Ajax+.aspx的调用方法

一:一般格式的POST数据

前台代码:

 $.ajax({
                    type: 'POST',
                    data: "{\"itemCode\":\"" + 参数1+ "\",\"rateConfig\":\"Rate\"}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    url: "/BaseInfo/SUSRateConfigEdit.aspx/GetSUSRateCofig",
                    success: function (result) {

                        var json = JSON.parse(result.d);
                        var html = "";
                        $.each(json, function (index, vaule) {
                            html += "<tr index=\"" + index + "\">";
                            html += "<td style=\"border: 1px solid #DDDDDD; width: 50%\"><input id=\"txtSName_" + index + "\" type=\"text\" readonly=\"readonly\" onclick=\"SelectContract(this)\" class=\"form-control\" value=\"" + vaule.SName + "\" /><input type=\"hidden\" id=\"hidSName_" + index + "\" value=\"" + vaule.SolutionID + "\" /></td>";
                            html += "<td style=\"border: 1px solid #DDDDDD; width: 15%\"><input id=\"txtSalesRate_" + index + "\"  type=\"text\" class=\"form-control\" value=\"" + vaule.SalesRate + "\" /></td>";
                            html += "<td style=\"border: 1px solid #DDDDDD; width: 15%\"><input id=\"txtCostRate_" + index + "\" type=\"text\" class=\"form-control\" value=\"" + vaule.CostRate + "\" /></td>";
                            html += "<td style=\"border: 1px solid #DDDDDD; width: 15%\"><a style=\"cursor:pointer\" onclick=\"del(this)\">删除</a></td>";
                            html += "</tr>";

                        });
                        $("#tabRate").append(html);
                    },

                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("错误[" + XMLHttpRequest.status + "]," + errorThrown + "。");
                    }
                });

 

后台代码:

  [WebMethod]
        public static string GetSUSRateCofig(string itemCode, string rateConfig)
        {
            DataTable ds = null;//调用获取数据方法
            string result = string.Empty;
            foreach (DataRow item in ds.Rows)
            {
                result += "{\"SName\":\"" + item["SolutionName"] + "\",\"SalesRate\":\"" + item["SalesRate"] + "\",\"CostRate\":\"" + item["CostRate"] + "\",\"SolutionID\":\"" + item["SolutionID"] + "\"},";
            }
            if (!string.IsNullOrEmpty(result))
            {
                result = result.Substring(0, result.Length - 1);
            }
            return "[" + result + "]";
        }

注意:1、ajax中post的data数据必须与后台方法的参数名字一样

 

 

 

二:POST对象数据

 前台代码:

   function Save() {
            var tips = Check();
            if (tips == "") {
                $("#btnSave").attr("disabled", "disabled");
                //拼接如下格式{A:'1',B:'2',C:[{D:'1',F:'2'},{D:'3',F:'4'}]}
                var suConfigRate = {};//对象
                var itemCode = $("#MainContentPlaceHolder_txtCode").val();
                suConfigRate.itemCode = itemCode;

                var giMode = $("#MainContentPlaceHolder_ddlMode").val();
                suConfigRate.mode = giMode;

                var susID = $("#MainContentPlaceHolder_txtSUSNameId").val();

                suConfigRate.susID = susID;

                //获取所有增加的行
                var sRates = [];//数组
                suConfigRate.sRate = sRates;
                var rows = $("#tabRate tr[index]");
                $.each(rows, function (index, value) {
                    //获取行
                    var sRate = {};
                    var tds = $(this).find("input");
                    $.each(tds, function (i) {
                        var id = $(this).attr("id");
                        if (id.indexOf("hidSName_") != -1) {
                            sRate.soluID = $(this).val();
                        }
                        if (id.indexOf("txtSalesRate_") != -1) {
                            sRate.salesRate = $(this).val();
                        }
                        if (id.indexOf("txtCostRate_") != -1) {
                            sRate.costRate = $(this).val();
                        }

                    });
                    sRates.push(sRate);
                });

                $.ajax({
                    url: "/BaseInfo/SUSRateConfigEdit.aspx/Save",
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    data: "{\"ss\":" + JSON.stringify(suConfigRate) + "}",
                    success: function (data) {
                        if (data.d == "ok") {
                            alert("成功");
                        } else {
                            alert("失败");
                        }
                    }
                })
            } else {
                alert(tips);
            }
        }

后台代码:

  /// <summary>
        /// 数据的保存
        /// </summary>
        /// <param name="ss"></param>
        /// <returns></returns>
        [WebMethod]
        public static string Save(SuConfigRate ss)
        {
            if (ss != null)
            {
                //所有数据先删再增
                DsCAP_SUSRate ds = new DsCAP_SUSRate();
                DateTime now = DateTime.Now;
                foreach (SRate item in ss.sRate)
                {
                    DsCAP_SUSRate.CAP_SUSRateRow dr = ds.CAP_SUSRate.NewCAP_SUSRateRow();
                    dr.ItemID = Guid.NewGuid();
                    dr.ItemCode = ss.itemCode;
                    dr.GICMode = ss.mode;
                    dr.SUSID = ConvertHelper.ConvertStringToGUID(ss.susID);
                    dr.SolutionID = ConvertHelper.ConvertStringToGUID(item.soluID);
                    dr.SalesRate = item.salesRate;
                    dr.CostRate = item.costRate;
                    dr.UpdateTime = now;
                    dr.UpdateUserID = LoginHandler.CurrentUser.UserInfo.UserID;
                    dr.UpdateUserName = LoginHandler.CurrentUser.UserInfo.UserName;
                    ds.CAP_SUSRate.AddCAP_SUSRateRow(dr);
                }
                bool result = ServiceHelper.CAPSUSService.UpdateSUSRate(ds, ss.itemCode);
                if (result)
                    return "ok";
                else
                    return "no";
            }
            return "ok";
        }

类:

  public class SuConfigRate
    {
        /// <summary>
        /// Code
        /// </summary>
        public string itemCode { set; get; }
        /// <summary>
        /// GICMode
        /// </summary>
        public string mode { set; get; }
        /// <summary>
        /// SUS的ID
        /// </summary>
        public string susID { set; get; }
        public List<SRate> sRate = new List<SRate>();
    }
    public class SRate
    {
        /// <summary>
        /// SolutionName
        /// </summary>
        public string soluName { set; get; }
        /// <summary>
        /// SolutionName的ID
        /// </summary>
        public string soluID { set; get; }
        /// <summary>
        /// saleRate
        /// </summary>
        public decimal salesRate { set; get; }
        /// <summary>
        /// costRate
        /// </summary>
        public decimal costRate { set; get; }
    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值