bootstrap-table使用整理

一、引用及基本样式

1.在bootstrap-table官网或其他途径下载bootstrap-table.js包,也可以使用连接引用
所需要引用的文件

		//css样式文件
		<link rel="stylesheet" href="../css/bootstrap-table.css" />
		//bootstrap-table js文件
        <script src="cockpit/js/bootstrap-table.js"></script>
        //bootstrap-table 汉化文件,将前端显示的提示文字都转换成汉语,如果用户都使用英语可以不引用
        <script src="cockpit/js/bootstrap-table-zh-CN.js"></script>

使用连接引用

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://unpkg.com/bootstrap-table@1.15.3/dist/bootstrap-table.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="https://unpkg.com/bootstrap-table@1.15.3/dist/bootstrap-table.min.js"></script>
<!-- Latest compiled and minified Locales -->
<script src="https://unpkg.com/bootstrap-table@1.15.3/dist/locale/bootstrap-table-zh-CN.min.js"></script>

2.基本样式,直接粘贴官网的样例

<table data-toggle="table">
  <thead>
    <tr>
      <th>Item ID</th>
      <th>Item Name</th>
      <th>Item Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Item 1</td>
      <td>$1</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Item 2</td>
      <td>$2</td>
    </tr>
  </tbody>
</table>

3.实际使用样例
实际使用中很少会用基本样例中的写法,毕竟数据很少有写死的,下面算是一个模板,我也是在其他帖子中找到的

function InitMainTable () {
 4             //记录页面bootstrap-table全局变量$table,方便应用
 5             var queryUrl = '/TestUser/FindWithPager?rnd=' + Math.random()
 6             $table = $('#grid').bootstrapTable({
 7                 url: queryUrl,                      //请求后台的URL(*)
 8                 method: 'GET',                      //请求方式(*)
 9                 //toolbar: '#toolbar',              //工具按钮用哪个容器
10                 striped: true,                      //是否显示行间隔色
11                 cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
12                 pagination: true,                   //是否显示分页(*)
13                 sortable: true,                     //是否启用排序
14                 sortOrder: "asc",                   //排序方式
15                 sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
16                 pageNumber: 1,                      //初始化加载第一页,默认第一页,并记录
17                 pageSize: rows,                     //每页的记录行数(*)
18                 pageList: [10, 25, 50, 100],        //可供选择的每页的行数(*)
19                 search: false,                      //是否显示表格搜索
20                 strictSearch: true,
21                 showColumns: true,                  //是否显示所有的列(选择显示的列)
22                 showRefresh: true,                  //是否显示刷新按钮
23                 minimumCountColumns: 2,             //最少允许的列数
24                 clickToSelect: true,                //是否启用点击选中行
25                 //height: 500,                      //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
26                 uniqueId: "ID",                     //每一行的唯一标识,一般为主键列
27                 showToggle: true,                   //是否显示详细视图和列表视图的切换按钮
28                 cardView: false,                    //是否显示详细视图
29                 detailView: false,                  //是否显示父子表
30                 //得到查询的参数
31                 queryParams : function (params) {
32                     //这里的键的名字和控制器的变量名必须一致,这边改动,控制器也需要改成一样的
33                     var temp = {   
34                         rows: params.limit,                         //页面大小
35                         page: (params.offset / params.limit) + 1,   //页码
36                         sort: params.sort,      //排序列名  
37                         sortOrder: params.order //排位命令(desc,asc) 
38                     };
39                     return temp;
40                 },
41                 columns: [{
42                     checkbox: true,  
43                     visible: true                  //是否显示复选框  
44                 }, {
45                     field: 'Name',
46                     title: '姓名',
47                     sortable: true
48                 }, {
49                     field: 'Mobile',
50                     title: '手机',
51                     sortable: true
52                 }, {
53                     field: 'Email',
54                     title: '邮箱',
55                     sortable: true,
56                     formatter: emailFormatter
57                 }, {
58                     field: 'Homepage',
59                     title: '主页',
60                     formatter: linkFormatter
61                 }, {
62                     field: 'Hobby',
63                     title: '兴趣爱好'
64                 }, {
65                     field: 'Gender',
66                     title: '性别',
67                     sortable: true
68                 }, {
69                     field: 'Age',
70                     title: '年龄'
71                 }, {
72                     field: 'BirthDate',
73                     title: '出生日期',
74                     formatter: dateFormatter
75                 }, {
76                     field: 'Height',
77                     title: '身高'
78                 }, {
79                     field: 'Note',
80                     title: '备注'
81                 }, {
82                     field:'ID',
83                     title: '操作',
84                     width: 120,
85                     align: 'center',
86                     valign: 'middle',
87                     formatter: actionFormatter
88                 }, ],
89                 onLoadSuccess: function () {
90                 },
91                 onLoadError: function () {
92                     showTips("数据加载失败!");
93                 },
94                 onDblClickRow: function (row, $element) {
95                     var id = row.ID;
96                     EditViewById(id, 'view');
97                 },
98             });
99         };

二、异步请求数据

上面说了,很少有写死的,我常用的是直接从数据库提取的数据,后端就不写了,就是查询表所需的内容提取出来,通过Ajax将数据传到前端。

//这里是在表单中增加了一列附件地址的填入,看实际需求
function actionFormatter(value){
    return '<a href="'+ value +'" target="_blank" style="color:'+"#ffffff"+'">附件</a>'
}
//这里是对column进行一个CSS设置,也可以不用单独提出来,看实际需求
function headerStyleFnf(column) {
  return {
    id: {
      css: { padding: '0.05rem' }
    },
    Model: {
      css: { padding: '0.05rem' }
    },
    defect: {
      css: { padding: '0.05rem' }
    },
    DEPARTMENT: {
      css: { padding: '0.05rem' }
    },
    tally: {
      css: { padding: '0.05rem' }
    },
    // 附件地址:{
    //    css:{padding:'8px'}
    // }
  }[column.field]
}


function ajaxV2List() {
  $('#table-V2List').bootstrapTable({
    url: "/api/cockpit/v2querytable", //请求地址,路由地址
    onLoadSuccess: function () {  //加载成功时执行
      console.info("加载成功V2");
      // console.log(this.result,111)
    },
    onLoadError: function () {  //加载失败时执行
      console.info("加载数据失败V2");
    },
    method: 'post',                      //请求方式(*)根据需要自行处理方法,此处使用get

    async: true,                        //true表示执行到这,ajax向后台发起访问,在等待响应的这段时间里,继续执行下面的代码
    //设置为true,基本都是后面的代码(除非还有ajax)先执行
    // toolbar: '#toolbar',                //工具按钮用哪个容器
    striped: false,                      //是否显示行间隔色
    cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
    pagination: true,                   //是否显示分页(*)
    sidePagination: "client",           //分页方式:client客户端分页,server服务端分页(*)
    paginationPreText: '<',              //上一页按钮样式
    paginationNextText: '>',             //下一页按钮样式
    pageNumber: 1,                       //初始化加载第一页,默认第一页
    pageSize: 15,                       //每页的记录行数(*)
    pageList: [10, 15, 20, 25],        //可供选择的每页的行数(*)
    paginationParts: ['pageList'], //['pageInfo','pageInfoShort','pageSize','pageList']
    contentType: "application/x-www-form-urlencoded",   //重要选项,必填
    sortable: false,                     //是否启用排序
    // sortName: "curmsindex",                     //是否启用排序
    // sortOrder: "desc",                   //排序方式
    showColumns: false,                  //是否显示所有的列
    showRefresh: false,                  //是否显示刷新按钮
    minimumCountColumns: 2,             //最少允许的列数
    clickToSelect: false,               //是否启用点击选中行
    headerStyle: headerStyleFnf,        //应用前面的column设置
    // height: '240',                        //行高,如果没有设置height属性,表格自动根据记录条数决定表格高度,最好不要设置这个属性
    uniqueId: "id",                     //每一行的唯一标识,一般为主键列
    showToggle: false,                    //是否显示详细视图和列表视图的切换按钮
    showExport: false,
    cardView: false,                    //是否显示详细视图
    detailView: false,                   //是否显示父子表
    //参数参考https://zhuanlan.zhihu.com/p/46609913,根据需要自行处理
    //这里开始是数据传参的关键,将options中的参数传给后端,再得到相应的值,作用类似Ajax中的data
    //如果不需要传参,可以不用写
    queryParams: function (params) {
      //             //这里的键的名字和控制器的变量名必须一致,这边改动,控制器也需要改成一样的
      var temp = options
      return temp;
    },
    columns: [
    	//自动添加序号
      {
        field: 'id',
        title: '序号Nr',
        visible: true,
        sortable: false,
        formatter: function (value, row, index) {
          //获取每页显示的数量
          var pageSize = $('#table-V2List').bootstrapTable('getOptions').pageSize;
          //获取当前是第几页
          var pageNumber = $('#table-V2List').bootstrapTable('getOptions').pageNumber;
          //返回序号,注意index是从0开始的,所以要加上1
          return index + 1;
        }
      },
      {
        //field对应的是数据库中所需要的字段名
        //title是在前端页面中显示的名
        field: 'Model',
        title: '模块',
        fontSize: '1rem',
        // visible: true,
        // sortable: false
      }, {
        field: 'defect',
        title: '重点问题 Defect',
        // visible: true,
        // sortable: false
      }, {
        field: 'DEPARTMENT',
        title: '部门 Dept',
        // visible: true,
        // sortable: false
      }, {
        field: 'tally',
        title: '数量',
        // visible: true,
        // sortable: true
      },
      //这里设置了链接,可以点入链接的地址
      // {
      //    field: '附件地址',
      //    title: '附件ATT',
      //    align: 'center',
      //    valign: 'middle',
      //    formatter: actionFormatter // 可以参考https://examples.bootstrap-table.com/#column-options/formatter.html#view-source
      //    // 或者参考 https://examples.bootstrap-table.com/#column-options/events.html#view-source 设置 events
      // },
    ]

  });
};

做到这里,其实已经可以正常使用了

三、样式设置

实际使用中会有一些样式需求与默认设置不同,比如说背景色是深色,文字颜色要变成白色的这种,下面我写几个常用的设置
其余的样式设置可以自行参考官网的内容
PS:我不清楚是我电脑的原因还是官网的原因,Bootstrap Table中文网例子我看不了代码样例,需要在Bootstrap Table英文官网相对应的进行查看

			//table-hover是对应的class类名,这里设置了表单的大小
            .table-hover {
              height: 7rem;
              width: 9rem;

            }
			//这里设置了表单的边框颜色,粗细,和padding值
            .table-bordered tr,
            td,
            th {
              border: 1px solid black;
              /* 整体表格边框 */
              padding: 0.025rem 0.025rem 0.025rem 0.1rem ;
            }
			//这里设置了表单page页标签的字体颜色,边框,背景色
            .page-link {
              // background: none;
              color: black;
              border: 1px solid black;
            }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种高级编程语言,而Django是一个使用Python编写的Web框架。它们可以一起使用来开发功能强大的Web应用程序。 Bootstrap是一个开源的前端框架,它提供了一套美观和响应式的页面设计元素和样式。它的主要目标是简化开发者在Web上创建美观和易于使用的页面的工作。 Bootstrap-Table是基于Bootstrap框架的一个强大的jQuery表格插件。它提供了丰富的功能和选项,使开发者能够很容易地在Web应用程序中创建和管理数据表格。Bootstrap-Table允许开发者使用少量的HTML和JavaScript代码来自定义和配置表格的样式和功能。 在Python Django中使用Bootstrap-Table可以帮助我们更轻松地创建和管理数据表格。我们可以将Bootstrap-Table与Django的模型和视图结合使用,从数据库中获取数据并在Web应用程序中显示它们。通过使用Bootstrap-Table的功能,我们可以对表格进行排序、分页、筛选等操作。 使用Bootstrap-Table的一个例子是在Django的视图中使用它来显示查询结果。我们可以通过在模板中引入Bootstrap-Table的样式和脚本文件,然后在视图中将查询结果传递给模板。在模板中,我们可以使用Bootstrap-Table的数据属性和选项来定义表格的样式和功能。最后,我们可以使用Bootstrap-Table的JavaScript方法来初始化和渲染表格,并在页面上显示查询结果。 总而言之,Python Django与Bootstrap-Table的结合可以让开发者更轻松地创建和管理数据表格,从而为Web应用程序提供更好的用户体验和功能。这是一个强大的组合,可以帮助我们快速开发高效的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值