jqGrid 排序功能

来源:互联网 发布:telnet命令 windows 编辑:程序博客网 时间:2024/05/22 04:43

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{} 可以不用写,这个事件是排序的时候需要做另外一些操作

                                             
0 0