bootstrap table表格插件之服务器端分页实例代码


Posted in Javascript onSeptember 12, 2018

Bootstrap Table是基于Bootstrap的轻量级表格插件,只需要简单的配置就可以实现强大的支持固定表头、单复选、排序、分页、搜索以及自定义表头等功能。

 因公司的项目需要实现用户管理的表格实现,所以选用了bootstrap-table用于动态获取后台的用户数据显示到前台。

 示例截图:

bootstrap table表格插件之服务器端分页实例代码

客户端代码:

//引入的css文件 
<link href="../public/static/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet" />
<link href="../public/static/css/plugins/bootstrap-table/bootstrap-table.min.css" rel="external nofollow" rel="stylesheet">
//引入的js文件
 <script src="../public/static/js/jquery.min.js"></script>
 <script src="../public/static/js/bootstrap.min.js"></script>
 <script src="../public/static/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
 <script src="../public/static/js/plugins/bootstrap-table/bootstrap-table-zh-CN.min.js"></script>

html文件代码

<div class="panel panel-default">
 <div class="panel-heading">
  查询条件
 </div>
 <div class="panel-body form-group" style="margin-bottom:0px;">
  <label class="col-sm-1 control-label" style="text-align: right; margin-top:5px">姓名:</label>
  <div class="col-sm-2">
   <input type="text" class="form-control" name="Name" id="search_name"/>
  </div>
  <label class="col-sm-1 control-label" style="text-align: right; margin-top:5px">手机号:</label>
  <div class="col-sm-2">
   <input type="text" class="form-control" name="Name" id="search_tel"/>
  </div>
  <div class="col-sm-1 col-sm-offset-4">
   <button class="btn btn-primary" id="search_btn">查询</button>
  </div>
  </div>
</div>
<table id="mytab" class="table table-hover"></table>
<div id="toolbar" class="btn-group pull-right" style="margin-right: 20px;">
  <button id="btn_edit" type="button" class="btn btn-default" style="display: none; border-radius: 0">
   <span class="glyphicon glyphicon-pencil" aria-hidden="true" ></span>修改
  </button>
  <button id="btn_delete" type="button" class="btn btn-default" style="display: none;">
   <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
  </button>
  <button id="btn_add" type="button" class="btn btn-default">
   <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
  </button>
 </div>

js文件代码:

//根据窗口调整表格高度
 $(window).resize(function() {
  $('#mytab').bootstrapTable('resetView', {
   height: tableHeight()
  })
 })
//生成用户数据
 $('#mytab').bootstrapTable({
  method: 'post',
  contentType: "application/x-www-form-urlencoded",//必须要有!!!!
  url:"../index.php/admin/index/userManagement",//要请求数据的文件路径
  height:tableHeight(),//高度调整
  toolbar: '#toolbar',//指定工具栏
  striped: true, //是否显示行间隔色
  dataField: "res",//bootstrap table 可以前端分页也可以后端分页,这里
  //我们使用的是后端分页,后端分页时需返回含有total:总记录数,这个键值好像是固定的 
  //rows: 记录集合 键值可以修改 dataField 自己定义成自己想要的就好
  pageNumber: 1, //初始化加载第一页,默认第一页
  pagination:true,//是否分页
  queryParamsType:'limit',//查询参数组织方式
  queryParams:queryParams,//请求服务器时所传的参数
  sidePagination:'server',//指定服务器端分页
  pageSize:10,//单页记录数
  pageList:[5,10,20,30],//分页步进值
  showRefresh:true,//刷新按钮
  showColumns:true,
  clickToSelect: true,//是否启用点击选中行
  toolbarAlign:'right',工具栏对齐方式
  buttonsAlign:'right',//按钮对齐方式
  toolbar:'#toolbar',//指定工作栏
  columns:[
   {
    title:'全选',
    field:'select',
    //复选框
    checkbox:true,
    width:25,
    align:'center',
    valign:'middle'
   },
   {
    title:'ID',
    field:'ID',
    visible:false
   },
   {
    title:'登录名',
    field:'LoginName',
    sortable:true
   },
   {
    title:'姓名',
    field:'Name',
    sortable:true
   },
   {
    title:'手机号',
    field:'Tel',
   },
   {
    title:'邮箱',
    field:'Email'
   },
   {
    title:'注册日期',
    field:'CreateTime',
    sortable:true
   },
   {
    title:'状态',
    field:'Attribute',
    align:'center',
    //列数据格式化
    formatter:operateFormatter
   }
  ],
  locale:'zh-CN',//中文支持,
  responseHandler:function(res){
   //在ajax获取到数据,渲染表格之前,修改数据源
   return res;
  }
 })
 //三个参数,value代表该列的值
 function operateFormatter(value,row,index){
  if(value==2){
   return '<i class="fa fa-lock" style="color:red"></i>'
  }else if(value==1){
   return '<i class="fa fa-unlock" style="color:green"></i>'
  }else{
   return '数据错误'
  }
 }
 //请求服务数据时所传参数
 function queryParams(params){
  return{
   //每页多少条数据
   pageSize: params.limit,
   //请求第几页
   pageIndex:params.pageNumber,
   Name:$('#search_name').val(),
   Tel:$('#search_tel').val()
  }
 }
  //查询按钮事件
 $('#search_btn').click(function(){
  $('#mytab').bootstrapTable('refresh', {url: '../index.php/admin/index/userManagement'});
 })
 //tableHeight函数
 function tableHeight(){
  //可以根据自己页面情况进行调整
  return $(window).height() -280;
 }

传入后台的数据:

bootstrap table表格插件之服务器端分页实例代码

后台传来的数据

bootstrap table表格插件之服务器端分页实例代码

只勾选一项,可以修改删除

bootstrap table表格插件之服务器端分页实例代码

勾选多项只能删除

bootstrap table表格插件之服务器端分页实例代码

开发过程中遇到的问题 (分页后重新搜素问题)

 如果点击到第二页,我再搜索框中输入搜索条件,点击查询按钮,调用bootstrap table refresh()方法,pageIndex会从第二页开始,应该改为第一页
 网上大多数方法为 :

$(“#mytab”).bootstrapTable(‘destroy');先要将table销毁,否则会保留上次加载的内容

……//然后重新初使化表格,相当于重新创建。

因为感觉太过麻烦,所以找了很久终于找到了简单的解决方法

 再点击查询按钮时

$(‘#mytab').bootstrapTable(‘refreshOptions',{pageNumber:1,pageSize:10});//便可以了

代码地址:https://github.com/hanxue10180/bootstrapTable

总结

以上所述是小编给大家介绍的bootstrap table表格插件之服务器端分页实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
不错的asp中显示新闻的功能
Oct 13 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
Angular 4.X开发实践中的踩坑小结
Jul 04 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
使用DataTable插件实现异步加载数据
Nov 19 Javascript
浅谈React碰到v-if
Nov 04 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
Apr 28 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 Javascript
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
详解html-webpack-plugin插件(用法总结)
Sep 12 #Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
Sep 12 #Javascript
vue elementUI tree树形控件获取父节点ID的实例
Sep 12 #Javascript
Vue.js 十五分钟入门图文教程
Sep 12 #Javascript
Vue通过ref父子组件拿值方法
Sep 12 #Javascript
webpack4 升级迁移的实现
Sep 12 #Javascript
React 项目迁移 Webpack Babel7的实现
Sep 12 #Javascript
You might like
Syphon 秘笈
2021/03/03 冲泡冲煮
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
js控制框架刷新
2008/08/01 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
python list语法学习(带例子)
2013/11/01 Python
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
python修改FTP服务器上的文件名
2019/09/11 Python
python 获取字典键值对的实现
2020/11/12 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
幼儿园校车司机的岗位职责
2014/01/30 职场文书
上课看小说检讨书
2014/02/22 职场文书
教师节获奖感言
2015/07/31 职场文书