前台js关键代码
$("#tableId").bootstrapTable({
sortable: true, //是否启用排序
sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
queryParams : queryParams,
columns: columns,
responseHandler:function(res){
//在ajax获取到数据,渲染表格之前,修改数据源
//后台传回PageHelper的PageInfo类,所以要如此修改
var nres = [];
nres.push({total:res.total,rows:res.list});
return nres[0];
}
});
var columns=[{
//复选框列
checkbox: true,
visible: true, //是否显示复选框
width:30
}, {
//序号列
field: 'number',
title: '序号',
width:50,
align:'center',
switchable:false,
formatter:function(value,row,index){
//return index+1; //序号正序排序从1开始
var pageSize=$('#showTable').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
var pageNumber=$('#showTable').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
return pageSize * (pageNumber - 1) + index + 1; //返回每条的序号: 每页条数 * (当前页 - 1 )+ 序号
}
},{
field: 'name',
align: 'center',
title: '名称',
sortable: true//可排序
},{
field: 'height',
align: 'center',
title: '高度',
sortable: true//可排序
}];
function queryParams(params){
//这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
var temp = {
pageSize: params.limit, //页面大小
pageNum: (params.offset / params.limit) + 1, //页码
name:$("#name").val(),
height:$("#height").val(),
sortValue: params.sort, //排序列名
sortOrder: params.order //排位命令(desc,asc)
};
return temp;
}
后台就不一一写了,用实体类接收查询条件,然后转为Map,再将sortValue和sortOrder传入Map作为排序条件
mybatis
<select id="queryRoadLamp" resultMap="RoadLampMap" parameterType="java.util.Map">
select
*
from
WFJY_LD_INFO
where isenabled=1
<if test="id != null and id !=''">AND ID=#{id}</if>
<if test="name != null and name !=''">and NAME like '%'||#{name}||'%'</if>
<if test="height != null and height !=''">and height like '%'||#{height}||'%'</if>
<if test="sortValue != null and sortValue!= '' and sortOrder !=null and sortOrder !=''">
ORDER BY ${sortValue} ${sortOrder}</if>
</select>