版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haoyuexihuai/article/details/80184852
自己实现Bootstrap table的分页、排序与模糊查询功能
要点
1.前台js需要在初始化bootstrapTable时,设置需要传递的参数
queryParamsType : "undefined",
queryParams: function queryParams(params) { //设置查询参数,都是可以自动从控件获得
var param = {
pageNumber: params.pageNumber,
pageSize: params.pageSize,
search : params.searchText,
sortName : params.sortName,
sortOrder : params.sortOrder,
};
return param;
},
//其他主要参数
pageNumber: 1, //初始化加载第一页,默认第一页
pageList: [1,2,5,10], //每页的记录行数(*)
search: true, //显示查询框
sidePagination: 'server', //服务端分页
pagination: true, //是否显示分页(*)
需要排序的列在columns里的列设置sortable
{
field: 'money',
title: '价格',
sortable: true,
}
后台实现数据展示的ajax
/**
* 获取所有套餐
* @return
*/
@RequestMapping(value = "/packagesPageAjax.ajax")
@ResponseBody
private HashMap<String, Object> JSONArray(HttpServletRequest request) {
//jpa默认从0开始
int pageNumber = Integer.parseInt(request.getParameter("pageNumber"))-1;
int pageSize = Integer.parseInt(request.getParameter("pageSize"));
String search = request.getParameter("search");
String sortName = request.getParameter("sortName");
String sortOrder = request.getParameter("sortOrder");
//按照要求定义一个HashMap作为返回json的格式
HashMap<String, Object> json=new HashMap<String, Object>();
Sort sort = null;
if(sortName==null){
sort = new Sort(Sort.Direction.ASC, "id");
}else{
if(sortOrder.equals("asc")){
sort = new Sort(Sort.Direction.ASC, sortName);
}else{
sort = new Sort(Sort.Direction.DESC, sortName);
}
}
Pageable pageable= new PageRequest(pageNumber,pageSize,sort);
if(search.equals("")||search==null){
json.put("total", packagesService.findAll(pageable).getTotalElements());
json.put("rows", packagesService.findAll(pageable).getContent());
}
else{
json.put("total", packagesService.findByMoneyLikeOrCountLikeOrTypeLike(search,search,search,pageable).getTotalElements());
json.put("rows", packagesService.findByMoneyLikeOrCountLikeOrTypeLike(search,search,search,pageable).getContent());
}
//json格式要求total与rows两个值
//可以看到官网使用的格式http://issues.wenzhixin.net.cn/examples/bootstrap_table/data
return json;
}
主要几个包
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
MongoRepository定义的方法
public interface PackagesRepository extends MongoRepository<Packages,String> {
//Packages为实体类
//使用分页,返回值类型要为Page,使用List返回值,前台分页会有问题
//有几个查询字段,就要穿相应个数的参数,同时jpa的方法都可以实现Pageable分页
public Page<Packages> findByMoneyLikeOrCountLikeOrTypeLike(String money,String count,String type,Pageable pageable);
}
其他的按照正常分层写就可以了
实现效果: