zoukankan      html  css  js  c++  java
  • 使用JS传递数组型数据回服务器

    //为数组添加一个方法,判断某个值是否存在于数组中
    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:
    " + 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
  • 相关阅读:
    spring @Transactional 事务注解
    vue 父子组件的方法调用
    spring boot使用TestRestTemplate集成测试 RESTful 接口
    JS实现网站内容的禁止复制和粘贴、另存为
    vue把localhost改成ip地址无法访问—解决方法
    spring mvc spring boot 允许跨域请求 配置类
    JIRA安装过程中链接mysql的问题!
    vue开发中v-for在Eslint的规则检查下出现:Elements in iteration expect to have 'v-bind:key' directives
    Linux进程启动/指令执行方式研究
    反弹Shell原理及检测技术研究
  • 原文地址:https://www.cnblogs.com/ceci/p/4329268.html
Copyright © 2011-2022 走看看