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 相关文章推荐
很多人都是用下面的js刷新站IP和PV
Sep 05 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
Sep 25 Javascript
JavaScript实现标题栏文字轮播效果代码
Oct 24 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
详解Javascript几种跨域方式总结
Feb 27 Javascript
微信小程序之分享页面如何返回首页的示例
Mar 28 Javascript
vue脚手架搭建过程图解
Jun 06 Javascript
浅谈webpack+react多页面开发终极架构
Nov 11 Javascript
详解如何用webpack4从零开始构建react开发环境
Jan 27 Javascript
Layui数据表格之单元格编辑方式
Oct 26 Javascript
vue npm install 安装某个指定的版本操作
Aug 11 Javascript
jquery插件实现轮播图效果
Oct 19 jQuery
详解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
PHP模板引擎SMARTY
2006/10/09 PHP
用PHP调用数据库的存贮过程!
2006/10/09 PHP
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
PHP的explode和implode的使用说明
2011/07/17 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
总结对比php中的多种序列化
2016/08/28 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
js读写json文件实例代码
2014/10/21 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
AngularJS实现注册表单验证功能
2017/10/16 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
Python实现两款计算器功能示例
2017/12/19 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
单身联谊活动方案
2014/01/29 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
一体化教学实施方案
2014/05/10 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书