jQuery(grid_selector).jqGrid({ subGrid: false, datatype: 'json', height: 415, width:780, rowNum: 10, rowList: [10, 20, 50, 100], pager: pager_selector, altRows: true, multiselect: false, multiboxonly: true, rownumbers: false, viewrecords: true, url: "resume/getAllResume", colNames: ['id', '姓名', '性别', '学历', '电话', '投递时间', '专业', '毕业学校', '应聘职位', "操作"], colModel: [ {name: 'id', hidden: true}, {name: 'name', width: 50}, {name: 'sex', width: 20}, {name: 'degree', width: 40}, {name: 'tel', width: 60}, {name: 'deliverDate', width: 80}, {name: 'major', width: 100}, {name: 'school', width: 120}, {name: 'applyPosition', width: 160}, {name: 'opera', sortable: false} ], sortable:true, sortorder:'asc',
主要添加 sortable:true,sortorder :"asc" 某些字段不要排序功能的话 只要在字段中加入 sortable:false;
jqgrid排序的功能是:在点击每一列的列名时,会根据你所点击列名的name去排序,jqgrid会将此列的字段传到server中,在colModel中sortable: true是默认的,如果不写此字段默认是支持排序的,如果不想此字段进行排序则sortable: false。
当点击sortable为true的列首时,jqGrid会向Server发送排序请求,例如:
http://localhost:8085/Hare/jqGridTest/jqGrid05.action?search=false&nd=1279006749246&rows=15&page=3&sidx=firstName&sord=asc
其中page为当前页,sidx是固定参数,其值为所点击的列名,sord也为固定参数,其为排序方式,升序还是降序,在server中,即doGet()方法中,通过//排序字段名称
其中onSortCol: function (index, colindex, sortorder)
Map<String, String> conditions = new HashMap<String, String>(); conditions.put("page", request.getParameter("page")); conditions.put("size", request.getParameter("rows")); conditions.put("sidx", request.getParameter("sidx")); conditions.put("sord", request.getParameter("sord")); conditions.put("applyAddress", request.getParameter("applyAddress")); conditions.put("school", request.getParameter("school")); conditions.put("sex", request.getParameter("sex")); conditions.put("major", request.getParameter("major")); conditions.put("degree", request.getParameter("degree")); conditions.put("applyPosition", request.getParameter("applyPosition")); conditions.put("startDate", request.getParameter("startDate")); conditions.put("endDate", request.getParameter("endDate")); conditions.put("rowData", request.getParameter("rowData"));
} if (StringUtil.isNotBlank(conditions.get("rowData"))) { sql.append("And r.rowData like '%" + conditions.get("rowData") + "%'") } if(StringUtil.isNotBlank(conditions.get("sidx"))&&StringUtil.isNotBlank(conditions.get("sord"))){ sql.append("order by r."+conditions.get("sidx")+" "+conditions.get("sord")) }else { sql.append("order by r.deliverDate desc"); }
如果只是需要实现简单地排序,onSortCol:function{} 可以不用写,这个事件是排序的时候需要做另外一些操作