您的位置:首页 > 其它

datatable 服务器端分页

2017-06-30 16:27 218 查看
js:
function A() {
datatableApi = $('#tableName').DataTable({
pageLength: 10,      //分页长度
paging: true,        //分页
showRowNumber: true, //显示行号
lengthChange: false, //不允许修改分页长度
ordering: false,     //排序
info: true,         //数据总数
searching: false,    //搜索
destroy: true, //Cannot reinitialise DataTable,解决重新加载表格内容问题
language: languageObj,
serverSide: true,  //服务器端分页
autoWidth: false,
ajax: {
type : 'post',
url :'./manage/search.do',
data :function(data){
var params = {};
params.yourData=yourData;
params.page=data.start / data.length + 1;
params.rows= data.length;
params.draw = data.draw;
return params;
},
dataSrc:'data', //这里不能用方法处理数据。会重载他原来的方法 导致初始化失败。
dataType : "json"
},
columns:[
{
data:function(row){
return row.time;
},
title:"提交时间",
width:"15%"
},
{
data:"name",
title:"姓名",
width:"7%"
}...
]
});
}


controller:

@ResponseBody
@RequestMapping("search")
public DataTablePaging<T> search(HttpServletRequest request,String yourData, PageParam pageParam,int draw){
return Service.search(yourData, pageParam, draw);
}

返回的数据类型:

@Getter
@Setter
public class DataTablePaging<T> {

private int draw;

private long recordsTotal;

private long recordsFiltered;

private List<T> data;
}


service:

@Override
public DataTablePaging<T> search(T yourData,PageParam pageParam,int draw) {
PageModel<T> a;
a=Dao.search(yourData,pageParam);

DataTablePaging<T> Paging= new DataTablePaging<>();;
Paging.setData(a.getRows());
Paging.setDraw(draw);
Paging.setRecordsTotal(a.getTotal());
Paging.setRecordsFiltered(a.getTotal());
return Paging;
}

DAO:

@Override
public PageModel<T> search(T yourData,PageParam pageParam) {
List<T> params = new ArrayList<>();
String jpql = "...";
return find(jpql,pageParam,params.toArray());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: