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 相关文章推荐
extjs 学习笔记(二) Ext.Element类
Oct 13 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
关于JavaScript中原型继承中的一点思考
Jul 25 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
Mar 06 Javascript
jQuery.each使用详解
Jul 07 Javascript
基于insertBefore制作简单的循环插空效果
Sep 21 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
vue结合Echarts实现点击高亮效果的示例
Mar 17 Javascript
JS实现密码框效果
Sep 10 Javascript
vue-element-admin项目导入和导出的实现
May 21 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
PHP 创建标签云函数代码
2010/05/26 PHP
php url地址栏传中文乱码解决方法集合
2010/06/25 PHP
php iconv() : Detected an illegal character in input string
2010/12/05 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
大学生自我鉴定范文
2013/12/28 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
团队拓展活动方案
2014/08/28 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
股权转让协议书
2014/12/07 职场文书
活动主持人开场白
2015/05/28 职场文书