千家信息网

bootStrap-table服务器端后台分页及自定义搜索框怎么实现

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关bootStrap-table服务器端后台分页及自定义搜索框怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先下载BootStrap-ta
千家信息网最后更新 2026年11月02日bootStrap-table服务器端后台分页及自定义搜索框怎么实现

这篇文章给大家分享的是有关bootStrap-table服务器端后台分页及自定义搜索框怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

首先下载BootStrap-table的js和CSS

下载地址:https://github.com/wenzhixin/bootstrap-table.git

下载完后解压

把bootstrap-table.js、bootstrap-table-zh-CN.js、bootstrap-table.css复制到项目中

在jsp中引入js和css

其他bootstrap相关文件和jQuery相关文件自行引入即可

先上一段jsp中代码

再看js代码

$(document).ready(function () {  //调用函数,初始化表格    initTable();  //当点击查询按钮的时候执行,bootstrap-table前端分页是不能使用搜索功能,所以可以提取出来自定义搜索。后台代码,在后面给出    $("#queryBtn").bind("click", initTable);});function initTable() {    //先销毁表格    $('#myTable').bootstrapTable('destroy');    $('#myTable').bootstrapTable({        url: "showConsumeRecordlList",//请求后台的URL(*)        method: 'get',        dataType: "json",        dataField: 'rows',        striped: true,//设置为 true 会有隔行变色效果        undefinedText: "空",//当数据为 undefined 时显示的字符        pagination: true, //设置为 true 会在表格底部显示分页条。        showToggle: "true",//是否显示 切换试图(table/card)按钮        showColumns: "true",//是否显示 内容列下拉框        pageNumber: 1,//初始化加载第一页,默认第一页        pageSize: 10,//每页的记录行数(*)        pageList: [10, 20, 30, 40],//可供选择的每页的行数(*),当记录条数大于最小可选择条数时才会出现        paginationPreText: '上一页',        paginationNextText: '下一页',        search: false, //是否显示表格搜索,bootstrap-table服务器分页不能使用搜索功能,可以自定义搜索框,上面jsp中已经给出,操作方法也已经给出        striped : true,//隔行变色        showColumns: false,//是否显示 内容列下拉框        showToggle: false, //是否显示详细视图和列表视图的切换按钮        clickToSelect: true,  //是否启用点击选中行        data_local: "zh-US",//表格汉化        sidePagination: "server", //服务端处理分页        queryParamsType : "limit",//设置为 'limit' 则会发送符合 RESTFul 格式的参数.        queryParams: function (params) {//自定义参数,这里的参数是传给后台的,我这是是分页用的//            请求服务器数据时,你可以通过重写参数的方式添加一些额外的参数,例如 toolbar 中的参数 如果//       queryParamsType = 'limit' ,返回参数必须包含limit, offset, search, sort, order //            queryParamsType = 'undefined', 返回参数必须包含: pageSize, pageNumber, searchText, sortName, sortOrder. //            返回false将会终止请求。            return {//这里的params是table提供的                offset: params.offset,//从数据库第几条记录开始                limit: params.limit,//找多少条                memberId: $("#searchString_id").val() //这个就是搜索框中的内容,可以自动传到后台,搜索实现在xml中体现            };        },        responseHandler: function (res) {      //如果后台返回的json格式不是{rows:[{...},{...}],total:100},可以在这块处理成这样的格式      return res;        },        columns: [{            field: 'xuhao',            title: '序号',            formatter: idFormatter        }, {            field: 'memberId',            title: '会员卡号',        }, {            field: 'name',            title: '会员姓名'        }, {            field: 'payTime',            title: '缴费时间',            formatter: timeFormatter        }, {            field: 'payNo',            title: '缴费单号'        }, {            field: 'payEntry',            title: '收款条目',            formatter: payEntryFormatter        }, {            field: 'cardType',            title: '卡种',            formatter: cardTypeFormatter        }, {            field: 'payMoney',            title: '缴费金额'        }, {            field: 'operate',            title: '缴费详情',            formatter: operateFormatter        } ],        onLoadSuccess: function () {        },        onLoadError: function () {            showTips("数据加载失败!");        }    });}function idFormatter(value, row, index){    return index+1;}function timeFormatter(value, row, index) {    if (value != null) {        var date = new Date(dateTime);        var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;        var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();        var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();        var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();        var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();        return date.getFullYear() + "-" + month + "-" + currentDate + " " + hours + ":" + minutes + ":" + seconds;    }}function payEntryFormatter(value, row, index){    switch(row.payEntry){    case '1':        value='缴费种类1';        break;    case '2':        value='缴费种类2';        break;    case '3':        value='缴费种类3';        break;    default:        value='其他';        break;    }    return value;}function cardTypeFormatter(value, row, index) {    switch(row.cardType){    case '1':        value='卡种1';        break;    case '2':        value='卡种2';        break;    case '3':        value='卡种3';        break;    default:        value='其他';        break;    }    return value;}function operateFormatter(value, row, index) {      return '';}

前段准备就绪,开始服务器代码

准备分页实体

package com.gym.utils;public class Page {    // 每页显示数量    private int limit;    // 页码    private int page;    // sql语句起始索引    private int offset;    // setter and getter....}

准备展示实体

import java.util.Date;import com.gym.utils.Page;public class ConsumeRecord extends Page {    private Integer id;    private Integer memberId;    private String months;    private Long payMoney;    private Date payTime;    private String payStatus;    private String payEntry;    private String remark;    private String name;    private String cardType;    private Date endTime;    private Date registerTime;    private String payNo;    // setter and getter...}

再来一个分页帮助类

import java.util.ArrayList;import java.util.List;public class PageHelper {    // 注意:这两个属性名称不能改变,是定死的    // 实体类集合    private List rows = new ArrayList();    // 数据总条数    private int total;    // setter and getter...}

编写Controller

/**     * 展示缴费详情列表     *      * @param modelMap     * @return     */    @RequestMapping("/showConsumeRecordlListA")    @ResponseBody    public String showConsumeRecordlListA(ConsumeRecord consumeRecord, HttpServletRequest request) {        PageHelper pageHelper = new PageHelper();        // 统计总记录数        Integer total = consumerRecordService.getTotal(consumeRecord);        pageHelper.setTotal(total);        // 查询当前页实体对象        List list = consumerRecordService.getConsumerRecordListPage(consumeRecord);        pageHelper.setRows(list);        return new GsonBuilder().serializeNulls().create().toJson(pageHelper);    }

经过Service层,这块就不粘贴了,直接到达mapper

import java.util.List;import com.entity.ConsumeRecord;public interface ConsumeRecordMapper {    ...    ...    /**     * 获取消费记录条数     *      * @param consumeRecord     * @return     */    Integer getTotal(ConsumeRecord consumeRecord);    /**     * 分页查询消费记录集合     *      * @param consumeRecord     * @return     */    List getConsumerRecordListPage(ConsumeRecord consumeRecord);}

然后mapper.xml

            

这是bootstrap-table官方文档,主要解释参数的意思,可根据文档按照自己的需求更改代码

感谢各位的阅读!关于"bootStrap-table服务器端后台分页及自定义搜索框怎么实现"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

搜索 参数 后台 服务 服务器 内容 数据 表格 代码 实体 按钮 格式 种类 准备 查询 会员 功能 文件 文档 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 科技企业和互联网企业 亿人帮互联网科技 上海亿帐通互联网科技 成都互联网科技公司100强 银川新华互联网科技职业技术培训学校图片 移动互联网科技股 科技与互联网哪个更好 贵州叶脉互联网科技有限公司所属行业 互联网科技公司有风险吗 本届互联网博览会上的黑科技 工业互联网展湾科技股份有限公司 领航科技大厦互联网公司 广州有谷有贝互联网科技有限公司 世界互联网科技成果奖 互联网科技接地气 互联网科技收购价值 张家口科技产业互联网平台 三亚科技创新互联网基地 现代科技的标志之一的互联网 互联网科技海报 圆梦互联网科技 互联网金融科技创新 猫创互联网科技 互联网保险科技创业 滨湖区互联网智能科技产品有哪些 上海乐五互联网科技有限公司 抖集互联网科技技术咨询 容联科技互联网电商 互联网科技快速发展优美句子
0