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 相关文章推荐
在视频前插入广告
Nov 20 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
Apr 25 Javascript
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
javascript密码强度校验代码(两种方法)
Aug 10 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
AngularJS用户选择器指令实例分析
Nov 04 Javascript
详解webpack打包vue时提取css
May 26 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
vue中倒计时组件的实例代码
Jul 06 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 Javascript
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
最全的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
用session做客户验证时的注意事项
2006/10/09 PHP
常用的php对象类型判断
2008/08/27 PHP
PHP生成plist数据的方法
2015/06/16 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
javascript URL锚点取值方法
2009/02/25 Javascript
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
python实现简单http服务器功能
2018/09/17 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
容易被忽略的Python内置类型
2020/09/03 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
大学生毕业自我鉴定
2013/11/06 职场文书
单位工作证明范文
2014/09/14 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
社区服务活动报告
2015/02/05 职场文书