表单jqGrid的数据如何以json格式传到后台

需求:通过ajax将页面表单的数据传到后台,以json格式

1.js页面

    ①获取jqGrid的数据源

 var postData = $("#jqGrid").getGridParam('data');

        ps:如果该 jqGrid绑定的数据源已经是json格式,不需要转化,如果不是需要转换

    ②将获取的数据源转换为json格式(存放在array数组中)

var jsonGridInfo = JSON.stringify(postData);

表单jqGrid的数据如何以json格式传到后台_第1张图片

     ③ 通过ajax传递参数。发送请求。

postData = {
		"value(daysDetileGridInfo)" : daysDetileGridInfo,
		"value(keiyakuNendo)" : keiyakuNendo,
		"value(printId)" : printId,
		"value(selectedMonth)" : month,

	}; 
   $.ajax(
            {
                url : sofia.contextPath()
                        + '/keiyaku/wfgm1000/wfgm1130/exportExcel.do',
                dataType : 'json',
                data : postData,
            }).done(function(data) {
        alert("回调函数");
    });

2.xml文件


    
    
    
    

     ps:接收js页面请求,转发到Wfgm1130Facad的exportExcel方法。会把参数自动装配到ajaxForm中,ActionForm

          其实是以map形式来存放传递的参数。value:daysDetileGridInfo  key: daysDetileGridInfo

3.java文件

public void exportExcel(AjaxValuesBean param, AjaxOutputStreamWrapper output)

    ①AjaxValuesBean中包含传入的参数。

     ②取出参数

 Map     ajaxParams      = param.getValues();
 Object  daysDetileGridInfoPatam    = ajaxParams.get("daysDetileGridInfo");
 String gridInfo       = daysDetileGridInfoPatam.toString();

      ③ 转换为json格式的数组

 JSONAware jsonValue = parseJson(gridInfo);
 JSONArray jsonArray = (JSONArray)jsonValue;

       ④使用

 JSONObject json = (JSONObject) jsonArray.get(0);
String contractNumber = checkNull(json.get("contractNumber"));  
           
           

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(jqGrid)