jqGrid 排序功能

  • Post author:
  • Post category:其他


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()方法中,通过//排序字段名称




String sidx = request.getParameter(“sidx”);来获得排序的列名,




String sord = request.getParameter(“sord”);来获得排序方式,即为重新检索数据,根据所取得的字段值进行重新的查询,然后返回到本页面。当你重复点击列首时,其排序方式是交替改变的。


其中onSortCol: function (index, colindex, sortorder)







{









//列排序事件





jQuery(“#gridTable”).jqGrid(‘setGridParam’,{page:$(‘#XtoPage’).val()});







}事件是在点击列首时触发的事件,本例中只是向后传递了当前page,可以传递多个参数。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{} 可以不用写,这个事件是排序的时候需要做另外一些操作




版权声明:本文为u013792648原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。