(1)jqgrid加載並獲取所有行數據
//獲取當前表格的所有數據 function getJQAllData() { var obj = jQuery("#jqGridId"); //獲取當前顯示的數據 var rows = obj.jqGrid('getRowData'); var rowNum = obj.jqGrid('getGridParam', 'rowNum'); //獲取顯示配置記錄數量 var total = obj.jqGrid('getGridParam', 'records'); //獲取查詢得到的總記錄數量 //設置rowNum為總記錄數量並且刷新jqGrid,使所有記錄現出來調用getRowData方法才能獲取到所有數據 obj.jqGrid('setGridParam', { rowNum: total }).trigger('reloadGrid'); var rows = obj.jqGrid('getRowData'); //此時獲取表格所有匹配的 obj.jqGrid('setGridParam', { rowNum: rowNum }).trigger('reloadGrid'); //還原原來顯示的記錄數量 return rows; }
(2)將所有表格數據傳到后台
getJQAllData(); jQuery("#submitForm").ajaxSubmit({ type : 'POST', url: saveUrl, dataType : 'json', data: { data :JSON.stringify(rows) //將json數組轉為String字符串 }, success: function(json){ alert(json.message); }, error: function(json) { alert("保存失敗!"); } });
后台獲取數據
String data = request.getParameter("data"); JSONArray object = JSONArray.fromObject(data);//將String轉json數組 List<ExpertList> lists=(List<ExpertList>)JSONArray.toList(object, ExpertList.class);//將json集合jArray放入list集合中
(3)通過rowId獲取行數據
//獲取grid表中所有的rowid值 var rowIds = obj.getDataIDs(); //初始化一個數組arrayData容器,用來存放rowData var arrayData = new Array(); if (rowIds.length > 0) { for (var i = 0; i < rowIds.length; i++) { //rowData=obj.getRowData(rowid);//這里rowid=rowIds[i]; arrayData.push(obj.getRowData(rowIds[i])); } }
(4)遍歷所有行數據
// 遍歷所有行數據 $("#taskTable").find("tbody tr").not(".jqgfirstrow").each(function (j) { var inventoryQty = $(this).find("#taskid").val(); if (inventoryQty == "") { alert("請先保存數據!"); return false; } });// 遍歷所有行數據
not(".jqgfirstrow")表示排除第一行表頭