Bootstrap Table从零开始


Posted in Javascript onJune 30, 2017

本文博主将从零开始,一步一步的告诉大家如何在前端用bootstrap Table插件展示一个表格

首先,要下载bootstrap Table插件所必须的js,地址:https://github.com/wenzhixin/bootstrap-table

官方文档地址:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/

本文项目地址:bootstraptable

本文需要注意点地方博主已用红笔圈起来

先展示效果图

Bootstrap Table从零开始

接下来就开始使用bootstrap Table插件制作表格

将上述地址下载的插件js放到项目中,分别为js,css,fonts

Bootstrap Table从零开始

此处有一个细节:locale文件夹的名字不能修改,而且里边的所有语言js,必须全部粘过来

本文以MVC为例,当然WebForm也是可以的

使用步骤:

1、新建一个控制器和视图,该视图引用了_Layout母页版

2、在视图里引用相应的js

Bootstrap Table从零开始

在页面上写一个table表格容器,这一句必须要有

<table id="ArbetTable"></table>

3、初始化bootstrap Table

$(function () {
 //1.初始化Table
 var oTable = new TableInit();
 oTable.Init();
 });

4、使用bootstrap Table

var TableInit = function () {
 var oTableInit = new Object();
 //初始化Table
 oTableInit.Init = function () {
 $('#ArbetTable').bootstrapTable({
  url: '/Interface/GetData',  //请求后台的URL(*)
  method: 'get',   //请求方式(*)
  toolbar: '#toolbar',  //工具按钮用哪个容器
  striped: true,   //是否显示行间隔色
  cache: false,   //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  pagination: true,   //是否显示分页(*)
  sortable: false,   //是否启用排序
  sortOrder: "asc",   //排序方式
  queryParams: oTableInit.queryParams,//传递参数(*)
  sidePagination: "server",  //分页方式:client客户端分页,server服务端分页(*)
  pageNumber: 1,   //初始化加载第一页,默认第一页
  pageSize: 10,   //每页的记录行数(*)
  pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  search: true,   //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  contentType: "application/x-www-form-urlencoded",
  strictSearch: true,
  showColumns: true,   //是否显示所有的列
  showRefresh: true,   //是否显示刷新按钮
  minimumCountColumns: 2,  //最少允许的列数
  clickToSelect: true,  //是否启用点击选中行
  height: 700,   //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  uniqueId: "no",   //每一行的唯一标识,一般为主键列
  showToggle: true,   //是否显示详细视图和列表视图的切换按钮
  cardView: false,   //是否显示详细视图
  detailView: false,   //是否显示父子表
  columns: [
  {
  field: 'ID',
  title: 'ID'
  }, {
  field: 'Name',
  title: '名字'
  }, {
  field: 'Sex',
  title: '性别'
  },
  {
  field: 'operate',
  title: '操作',
  formatter: operateFormatter //自定义方法,添加操作按钮
  },
  ],
  rowStyle: function (row, index) {
  var classesArr = ['success', 'info'];
  var strclass = "";
  if (index % 2 === 0) {//偶数行
   strclass = classesArr[0];
  } else {//奇数行
   strclass = classesArr[1];
  }
  return { classes: strclass };
  },//隔行变色
 });

 };


 //得到查询的参数
 oTableInit.queryParams = function (params) {
 var temp = { //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
  limit: params.limit, //页面大小
  offset:params.offset
 };
 return temp;
 };
 return oTableInit;
};


function operateFormatter(value, row, index) {//赋予的参数
 return [
 '<a class="btn active disabled" href="#">编辑</a>',
 '<a class="btn active" href="#">档案</a>',
 '<a class="btn btn-default" href="#">记录</a>',
 '<a class="btn active" href="#">准入</a>'
 ].join('');
}

5、后台url返回数据

public ActionResult GetData(int limit, int offset)
 {
  var data = new List<object>(){new { ID=1, Name="Arbet", Sex="男"},
  new { ID= 2, Name="Arbet1", Sex="女" },
  new {ID=3, Name="Arbet2",Sex="男" },
  new {ID=4, Name="Arbet3",Sex="女" },
  new {ID=5, Name="Arbet4",Sex="男" },
  new {ID=6, Name="Arbet5",Sex="男" },
  new {ID=7, Name="Arbet6",Sex="女" },
  new {ID=8, Name="Arbet7",Sex="男" },
  new { ID=9, Name="Arbet1", Sex="女" },
  new {ID=10, Name="Arbet2",Sex="男" },
  new {ID=11, Name="Arbet3",Sex="女" },
  new {ID=12, Name="Arbet4",Sex="男" },
  new {ID=13, Name="Arbet5",Sex="男" },
  new {ID=14, Name="Arbet6",Sex="女" },
  new {ID=15, Name="Arbet7",Sex="男" }
  };
  var total = data.Count;
  var rows = data.Skip(offset).Take(limit).ToList();
  return Json(new { total = total, rows = rows }, JsonRequestBehavior.AllowGet);
 }

在本文中,博主以匿名集合来设置数据,大家可以通过查询数据库获取数据

在此需要注意:返回的参数必须是total和rows,total返回数据集总个数,rows返回table的json格式

6、展示效果

Bootstrap Table从零开始

发现出现了这个bug,这是怎么回事

在浏览器上打开源代码

Bootstrap Table从零开始

发现多了一些其他js文件,这是layout母页版里引入的js文件

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <meta name="viewport" content="width=device-width" />
 <title>@ViewBag.Title</title>
 @Styles.Render("~/Content/css")
 @Scripts.Render("~/bundles/modernizr")
</head>
<body>
 @RenderBody()

 @*@Scripts.Render("~/bundles/jquery")*@
 @RenderSection("scripts", required: false)
</body>
</html>

把上图中的红框里的js文件注释掉再运行

Bootstrap Table从零开始

发现成功了!这是因为JS库文件的引用是有顺序的,必须先引用JQuery库文件,再引用插件js

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用roll.js实现的图片自动滚动+鼠标触动的特效
Mar 18 Javascript
jquery通过visible来判断标签是否显示或隐藏
May 08 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
Jul 03 jQuery
layui异步加载table表中某一列数据的例子
Sep 16 Javascript
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
浅谈TypeScript的类型保护机制
Feb 23 Javascript
JavaScript中的全局属性与方法深入解析
Jun 14 Javascript
vant 时间选择器--开始时间和结束时间实例
Nov 04 Javascript
最全的JavaScript开发工具列表 总有一款适合你
Jun 29 #Javascript
常见的浏览器Hack技巧整理
Jun 29 #Javascript
详解webpack+gulp实现自动构建部署
Jun 29 #Javascript
bootstrapvalidator之API学习教程
Jun 29 #Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
Jun 29 #Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 #jQuery
详解webpack 多页面/入口支持&amp;公共组件单独打包
Jun 29 #Javascript
You might like
桌面中心(二)数据库写入
2006/10/09 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
JavaScript获取function所有参数名的方法
2015/10/30 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
python对象与json相互转换的方法
2019/05/07 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
《在大海中永生》教学反思
2014/02/24 职场文书
优秀语文教师事迹
2014/05/18 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
恰同学少年观后感
2015/06/08 职场文书
Python实现机器学习算法的分类
2021/06/03 Python
Elasticsearch 配置详解
2022/04/19 Java/Android
MySQL 语句执行顺序举例解析
2022/06/05 MySQL
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js