//为数组添加一个方法,判断某个值是否存在于数组中
Array.prototype.in_array = function (e) {
for (i = 0; i < this.length && this[i] != e; i++);
return !(i == this.length);
}
var array = new Array();

//数组中的Item
var arr = {
//"RFQID": $("#ID").val(),
"RFQID": $(this).attr("rfqid"),
"SiteCode": $(this).attr("site"),
"ProcessID": $(this).attr("processid"),
"ForecastLoading": $(this).val(),
"SimulateNumber": 2,
"MainRFQID": $("#ID").val()
} array .push(arr); //将Item塞入数组
$.ajax({
type: "Post",
processData: false,
contentType: 'application/json; charset=UTF-8',
url: "/ReportSimulation/UpdateProcessForecastLoading",
data: { list: arrObj },
beforeSend: function (xhr, setting) {
setting.data = JSON.stringify(setting.data);//转为Json
},
success: function (r) {
if (r.Success) {
alert("Success");
} else {
alert("Error");
}
}
});

服务器接收:

public ActionResult UpdateProcessForecastLoading(List<ForecastProcessLoadingVM> list)

ForecastProcessLoadingVM 申明:

 public class ForecastProcessLoadingVM
{
public Guid RFQID { get; set; }
public string SiteCode { get; set; }
public Guid ProcessID { get; set; }
public string ProcessName { get; set; }
public double? ForecastLoading { get; set; }
public int SimulateNumber { get; set; }
public Guid MainRFQID { get; set; }
}

JQGrid中,直接将grid getRowData就可以传回了:

      var gridData = $gridCAPEX.getRowData();
//var postData = JSON.stringify(gridData);
//alert("JSON serialized jqGrid data:\n" + postData); var data = {
ID: $("#ID").val(),
NeedNewCAPEX: $("#NeedNewCAPEX").val(),
CAPEXVMList: gridData
}; $.ajax({
type: "Post",
processData: false,
contentType: 'application/json; charset=UTF-8',
url: "/BDFormPage/SaveCAPEX",
data: data,
beforeSend: function (xhr, setting) {
setting.data = JSON.stringify(setting.data);
},
success: function (r) {
if (r.Success) {
alert("Success");
} else {
alert("Error");
}
}
});

注意:getRowData取的是innerHtml,针对Select类型的选项,一定要将其格式也设置为Select,否则会传回Text,不传回Value

{
label: "Category", name: "Category", index: "Category", hidden: false, editable: true,
editrules: { required: true },
edittype: "select", formatter: "select", editoptions: {
value: { 1: "New", 2: "Existing" }
}
},

加上

formatter: "select",getRowData取出的是1 2,否则取出的是New Existing

使用JS传递数组型数据回服务器的更多相关文章

  1. ajax传递数组到后台,js传递数组到后台

    用angular做商品搜索功能,后台接口那边过滤条件必须传递数组过去,结果比较尴尬的事情发生了,每次传递数组过去,查看请求发送的数据,自动被转成了对象,很头疼. 数据传递前 传递后我查看了请求的数据 ...

  2. js传递数组

    注意:数组不能直接作为参数传给后台,需要先用JSON处理成数组字符串,传到后台后再转回数组. var arr_str = JSON.stringify(array)

  3. js传递json格式对象到服务器

    var message = new Object();message.event = "test";message.params = new Object();message.pa ...

  4. js传递数组到后台

    //post方法不得行,各种问题...改为ajax就阔以了.//默认的话,traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架, // ...

  5. 前端Js传递数组至服务器端

    $("#delete").click(function () { var ID = ""; var ary = []; var bb = document.ge ...

  6. 前端AJAX传递数组给Springmvc接收处理

    前端传递数组后端(Spring)来接收并处理: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  7. ajax向后台传递数组参数并将后台响应的数据赋值给一个变量供其它插件使用

    1.在js中封装ajax向后台传递数组参数函数 //combogrid * * @Description 封装ajax向后台传递数组参数并将后台响应的数据赋值给一个变量方便其他插件使用该数据函数 * ...

  8. JS 索引数组、关联数组和静态数组、动态数组

    JS 索引数组.关联数组和静态数组.动态数组 数组分类: 1.从数组的下标分为索引数组.关联数组 var ary1 = [1,3,5,8]; //按索引去取数组元素,从0开始(当然某些语言实现从1开始 ...

  9. 在ASP.NET MVC中以post方式传递数组参数的示例

    最近在工作中用到了在ASP.NET MVC中以post方式传递数组参数的情况,记录下来,以供参考. 一.准备参数对象 在本例中,我会传递两个数组参数:一个字符串数组,一个自定义对象数组.这个自定义对象 ...

随机推荐

  1. Unity3d发布的iOS产品中使用GB2312字符编码(CP936)

    最近在开发中要用到GB2312字符编码(CP936),在C#代码中便有了如此代码 System.Text.Encoding.GetEncoding() 这在Unity3d 编辑器下运行没有任何问题,打 ...

  2. 启动hive命令时指定参数或自定义参数

    启动hive命令时指定参数或自定义参数 在hive启动命令中指定一个参数 hive --hiveconf hive.job.submit.username=fuxin.zhao -e "se ...

  3. 10.05 最初对Linux的了解,对Shell的认识

    linux的起源:UNIX,代码开源,可以得到源代码,然后自己编译,通过以后可以运行程序. 特点:免费的;兼容POSIX1.0标准;多用户,多任务系统;良好的用户界面;提供了图形界面;支持多种文件系统 ...

  4. 【Dnc.Api.Throttle】适用于.Net Core WebApi接口限流框架

    Dnc.Api.Throttle    适用于Dot Net Core的WebApi接口限流框架 使用Dnc.Api.Throttle可以使您轻松实现WebApi接口的限流管理.Dnc.Api.Thr ...

  5. c# 图片等比缩略

    public Bitmap getnew(Image bit, int TargetWidth, int TargetHeight)//beishu参数为放大的倍数.放大缩小都可以,0.8即为缩小至原 ...

  6. console使用技巧

    http://heikezhi.com/yuanyi/10%E4%B8%AAchrome%20console%E5%AE%9E%E7%94%A8%E5%B0%8F%E6%8A%80%E5%B7%A7 ...

  7. MyBatis入门程序(基于XML配置)

    创建一个简单的MyBatis入门程序,实现对学生信息的增删改查功能(基于XML配置) 一.新建一个Java工程,导入MyBatis核心jar包.日志相关的jar包以及连接Oracle数据库所需驱动包, ...

  8. lamp-linux3

    LAMP编程之Linux(3) 一.权限管理 1.权限介绍(重点) 在Linux中分别有读.写.执行权限: 读权限: 对于文件夹来说,读权限影响用户是否能够列出目录结构 对于文件来说,读权限影响用户是 ...

  9. linux中python配置tab=4个空格,并显示行号。

    vim ~/.vimrc 写入: set ts=4 set nu :wq 保存. source ~/.vimrc 使之生效.

  10. 解决pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8C\\xB8' for column 'headline' at row 1")

    解决pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8C\\xB8' for column ...