php bootstraptable分页,浅谈bootstrap实现table分页的两种方式(前端/服务器)

本文详细介绍了如何使用BootstrapTable实现前端和服务器端的分页功能。在前端分页中,所有数据一次性从数据库获取并在客户端进行分页;而在服务器分页中,每次仅请求当前页所需数据。文章提供了JavaScript代码示例,包括查询参数的设置、数据列的定义以及与后台交互的方法。同时,还展示了MyBatis的分页查询SQL语句。通过这种方式,可以有效地提高网页性能并提供更好的用户体验。
摘要由CSDN通过智能技术生成

本篇文章给大家介绍一下bootstrap table分页的前后端两种实现方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

79e8cd2489e695eb63cad207dbbf046f.png

bootstrap table分页的两种方式:

前端分页:一次性从数据库查询所有的数据,在前端进行分页(数据量小的时候或者逻辑处理不复杂的话可以使用前端分页)

服务器分页:每次只查询当前页面加载所需要的那几条数据

bootstrap 下载地址:http://www.bootcss.com/

bootstrap-table 下载地址:http://bootstrap-table.wenzhixin.net.cn/

jquery下载地址:http://www.jq22.com/jquery-info122

分页效果(请忽略样式)

328834b033e14785614a2aecf69d2cd2.png

一:准备js、css等文件

▶ 将下载的文档直接放入webapp目录下

88836547d0352980b03af8338900f626.png

▶页面引入需要的js、css

rel="stylesheet">

二:html页面标签内容

查询条件

姓名:

手机号:

查询

三:JS分页代码$('#mytab').bootstrapTable({

method : 'get',

url : "user/getUserListPage",//请求路径

striped : true, //是否显示行间隔色

pageNumber : 1, //初始化加载第一页

pagination : true,//是否分页

sidePagination : 'client',//server:服务器端分页|client:前端分页

pageSize : 4,//单页记录数

pageList : [ 5, 10, 20, 30 ],//可选择单页记录数

showRefresh : true,//刷新按钮

queryParams : function(params) {//上传服务器的参数

var temp = {//如果是在服务器端实现分页,limit、offset这两个参数是必须的

limit : params.limit, // 每页显示数量

offset : params.offset, // SQL语句起始索引

//page : (params.offset / params.limit) + 1, //当前页码

Name : $('#search_name').val(),

Tel : $('#search_tel').val()

};

return temp;

},

columns : [ {

title : '登录名',

field : 'loginName',

sortable : true

}, {

title : '姓名',

field : 'name',

sortable : true

}, {

title : '手机号',

field : 'tel',

}, {

title : '性别',

field : 'sex',

formatter : formatSex,//对返回的数据进行处理再显示

}, {

title : '操作',

field : 'id',

formatter : operation,//对资源进行操作

} ]

})

//value代表该列的值,row代表当前对象

function formatSex(value, row, index) {

return value == 1 ? "男" : "女";

//或者 return row.sex == 1 ? "男" : "女";

}

//删除、编辑操作

function operation(value, row, index) {

var htm = "删除修改"

return htm;

}

//查询按钮事件

$('#search_btn').click(function() {

$('#mytab').bootstrapTable('refresh', {

url : 'user/getUserListPage'

});

})

四:bootstrap-table 实现前端分页

▶ 修改JS分页代码中某些属性sidePagination:'client',

queryParams : function (params) {

var temp = {

name:$('#search_name').val(),

tel:$('#search_tel').val()

};

return temp;

},

▶ 定义user对象package com.debo.common;

public class User {

private Integer id;

private String loginName;

private String name;

private String tel;

private Integer sex;

//省略Get/Set函数

}

▶ 服务器Controller层代码/**

*直接一次性查出所有的数据,返回给前端,bootstrap-table自行分页

*/

@RequestMapping("/getUserListPage")

@ResponseBody

public List getUserListPage(User user,HttpServletRequest request){

List list = userService.getUserListPage(user);

return list;

}

▶ mabatis语句

SELECT * FROM user WHERE 1 = 1

AND name LIKE CONCAT('%',#{name},'%')

AND tel = #{tel}

五:bootstrap-table 实现服务器端分页

▶ 设置JS分页代码中的某些属性sidePagination:'server',

queryParams : function (params) {

var temp = {

limit : params.limit, // 每页显示数量

offset : params.offset, // SQL语句起始索引

page: (params.offset / params.limit) + 1, //当前页码

Name:$('#search_name').val(),

Tel:$('#search_tel').val()

};

return temp;

},

▶ 封装公共的page对象,并让user对象继承page对象package com.debo.common;

public class Page {

//每页显示数量

private int limit;

//页码

private int page;

//sql语句起始索引

private int offset;

public int getLimit() {

return limit;

}

public void setLimit(int limit) {

this.limit = limit;

}

public int getPage() {

return page;

}

public void setPage(int page) {

this.page = page;

}

public int getOffset() {

return offset;

}

public void setOffset(int offset) {

this.offset = offset;

}

}package com.debo.common;

public class User extends Page{

private Integer id;

private String loginName;

private String name;

private String tel;

private Integer sex;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getLoginName() {

return loginName;

}

public void setLoginName(String loginName) {

this.loginName = loginName;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getTel() {

return tel;

}

public void setTel(String tel) {

this.tel = tel;

}

public Integer getSex() {

return sex;

}

public void setSex(Integer sex) {

this.sex = sex;

}

}

▶ 封装返回数据实体类package com.debo.common;

import java.util.ArrayList;

import java.util.List;

public class PageHelper {

//实体类集合

private List rows = new ArrayList();

//数据总条数

private int total;

public PageHelper() {

super();

}

public List getRows() {

return rows;

}

public void setRows(List rows) {

this.rows = rows;

}

public int getTotal() {

return total;

}

public void setTotal(int total) {

this.total = total;

}

}

▶ 服务器Controller层代码@RequestMapping("/getUserListPage")

@ResponseBody

public PageHelper getUserListPage(User user,HttpServletRequest request) {

PageHelper pageHelper = new PageHelper();

// 统计总记录数

Integer total = userService.getTotal(user);

pageHelper.setTotal(total);

// 查询当前页实体对象

List list = userService.getUserListPage(user);

pageHelper.setRows(list);

return pageHelper;

}

▶ mybatis语句

SELECT count(1) FROM user WHERE 1 = 1

AND name LIKE CONCAT('%',#{name},'%')

AND tel = #{tel}

SELECT * FROM user WHERE 1 = 1

AND name LIKE CONCAT('%',#{name},'%')

AND tel = #{tel}

LIMIT #{offset},#{limit}

tip:增、删、改操作后重新加载表格$("#mytab").bootstrapTable('refresh', {url : url});

更多计算机编程相关知识,请访问:编程视频!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值