JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】

下面是详细讲解“JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】”的完整攻略。

1. 父子表

父子表是指在一张表格中,某些行可以展开后显示子表格。Bootstrap table提供了父子表的插件,使用起来非常方便。

1.1 配置插件

要使用父子表的插件,首先要配置插件。可以使用data 属性来设置子表的数据和表头信息,使用data-field 属性来匹配父子表信息,使用data-index 属性来匹配父、子表的数据和表头信息。

示例代码:

<table data-toggle="table">
  <thead>
    <tr>
      <th data-field="name">Name</th>
      <th data-field="email">Email</th>
      <th data-field="gender">Gender</th>
      <th data-field="rank">Rank</th>
    </tr>
  </thead>
  <tbody>
    <tr data-index="0">
      <td>Steve Waters</td>
      <td>steve@gmail.com</td>
      <td>Male</td>
      <td>2</td>
    </tr>
    <tr data-index="1" data-parent-index="0">
      <td colspan="4">
        <table data-toggle="table" data-parent-index="0" data-parent-key="name">
          <thead>
            <tr>
              <th data-field="name">Name</th>
              <th data-field="email">Email</th>
              <th data-field="rank">Rank</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Jon Richards</td>
              <td>jonathan@example.com</td>
              <td>3</td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
  </tbody>
</table>

1.2 设置父子表的匹配条件

具有父子表的行必须要包含属性"data-parent-index",并且它的值应该等于它的父行属性"data-index"的值。在子表格中,可以使用"data-parent-key"属性指定匹配子表和父表所需的数据字段,这里是"name"。

示例代码:

<table id="table" data-toggle="table" data-url="data1.json" data-pagination="true" data-search="true">
  <thead>
    <tr>
      <th data-field="name">Name</th>
      <th data-field="email">Email</th>
      <th data-field="gender">Gender</th>
      <th data-field="rank">Rank</th>
    </tr>
  </thead>
  <tbody>
    <tr data-parent-index="1">
      <td>David Johnson</td>
      <td>david@example.com</td>
      <td>Male</td>
      <td>3</td>
    </tr>
    <tr data-parent-index="1" data-index="2">
      <td aria-describedby="table2-0" id="table2-0">Tommy Brown</td>
      <td aria-describedby="table2-1" id="table2-1">tommy@example.com</td>
      <td aria-describedby="table2-2" id="table2-2">Male</td>
      <td aria-describedby="table2-3" id="table2-3">4</td>
    </tr>
    <tr data-parent-index="1" data-index="3">
      <td colspan="4">
        <table data-toggle="table" data-parent-index="2" data-parent-key="name">
          <thead>
            <tr>
              <th data-field="name">Name</th>
              <th data-field="email">Email</th>
              <th data-field="rank">Rank</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Jon Richards</td>
              <td>jonathan@example.com</td>
              <td>3</td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
  </tbody>
</table>

2. 行列调序

虽然Bootstrap table默认按照列的顺序来显示数据,但是可以使用插件来实现列的调序和行的拖拽调序。

2.1 调序列

可以使用column-switch插件来调序列。该插件需要放在table标签外,而且需要指定需要调序的表格的id。调序后的结果会实时反映在表格中,而且可以使用localStorage来保留用户的排序。

示例代码:

<table id="table" data-toggle="table" data-url="data3.json" data-search="true">
  <thead>
    <tr>
      <th data-field="id" data-switchable="false">ID</th>
      <th data-field="name">Name</th>
      <th data-field="email">Email</th>
      <th data-field="gender">Gender</th>
      <th data-field="age">Age</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Steve Waters</td>
      <td>steve@example.com</td>
      <td>Male</td>
      <td>22</td>
    </tr>
    <tr>
      <td>2</td>
      <td>David Johnson</td>
      <td>david@example.com</td>
      <td>Male</td>
      <td>25</td>
    </tr>
  </tbody>
</table>
<script>
  $('#table').bootstrapTable();
  $('#table').bootstrapTable('refreshOptions', {columnSwitch: true});
</script>

2.2 调序行

可以使用drag-table插件来调序行。该插件需要放在table标签外,而且需要指定需要调序的表格的id。拖拽调序后的结果会实时反映在表格中,而且可以使用localStorage来保留用户的排序。

示例代码:

<table id="table" data-toggle="table" data-url="data2.json" data-pagination="true" data-sort-name="name" data-sort-order="asc">
  <thead>
    <tr>
      <th data-field="name" data-sortable="true">Name</th>
      <th data-field="email" data-sortable="true">Email</th>
      <th data-field="gender" data-sortable="true">Gender</th>
      <th data-field="age" data-sortable="true">Age</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Steve Waters</td>
      <td>steve@example.com</td>
      <td>Male</td>
      <td>22</td>
    </tr>
    <tr>
      <td>David Johnson</td>
      <td>david@example.com</td>
      <td>Male</td>
      <td>25</td>
    </tr>
    <tr>
      <td>Tommy Brown</td>
      <td>tommy@example.com</td>
      <td>Male</td>
      <td>24</td>
    </tr>
    <tr>
      <td>Jon Richards</td>
      <td>jonathan@example.com</td>
      <td>Male</td>
      <td>23</td>
    </tr>
  </tbody>
</table>
<script>
  $('#table').bootstrapTable();
  $('#table').dragtable();
</script>

以上就是“JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】”完整攻略的详细说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】 - Python技术站

(0)
上一篇 2023年6月20日
下一篇 2023年6月20日

相关文章

  • linux awk 字符串连接操作(字符串转数字,数字转字符串)

    Linux awk 是一款常用的文本处理工具,它可以方便地对文本文件进行操作和处理。字符串连接操作常用于将多个字符串拼接成一个字符串,或将字符串与数字之间进行转换。 字符串连接操作 在 awk 中,字符串连接可以使用双引号来实现,例如: $ awk ‘BEGIN{str1="Hello, "; str2="world!&quot…

    other 2023年6月20日
    00
  • Java web入门指南之在Idea上创建Java web项目

    Java Web入门指南之在Idea上创建Java Web项目 本攻略将详细介绍如何在Idea上创建Java Web项目。Java Web项目是基于Java技术的Web应用程序,可以通过浏览器访问。以下是创建Java Web项目的步骤: 步骤一:安装Idea 首先,确保已经安装了最新版本的Idea集成开发环境。可以从Idea官方网站(https://www.…

    other 2023年8月6日
    00
  • 深度点评五种常见WiFi搭建方案

    深度点评五种常见WiFi搭建方案 无线网络在我们的日常生活中扮演着越来越重要的角色,一份良好的 WiFi 网络不仅能给我们带来快速的上网和流畅的娱乐体验,还能让我们更加高效地工作。本文将深度点评五种常见的 WiFi 搭建方案,帮助你选择最适合自己的方案。 方案一:单一路由器 单一路由器是一种简单而又常见的 WiFi 搭建方案。只需要购买一台路由器,将它设置好…

    其他 2023年3月28日
    00
  • oracle数据库解析json格式

    Oracle数据库可以使用JSON_VALUE、JSON_QUERY、JSON_TABLE等函数来解析JSON格式的数据。以下是使用Oracle数据库解析JSON格式的完整攻略: 首先,创建一个包含JSON格式数据的表。例如,创建一个名为employees的表,其中包含员工的姓名、年龄和工资等信息: sql CREATE TABLE employees ( …

    other 2023年5月9日
    00
  • 基于Docker+Jenkins实现自动化部署的方法

    下面是基于Docker+Jenkins实现自动化部署的完整攻略。 1. 简介 Docker是一个开源的容器化平台,Jenkins是一个流行的自动化构建工具。二者组合在一起可以构建一个完整的自动化部署方案,加快软件开发、测试和部署的速度,提高工作效率。 2. 准备工作 在使用Docker和Jenkins进行自动化部署之前需要进行以下准备工作: 安装Docker…

    other 2023年6月27日
    00
  • HTML中css和js链接中的版本号(刷新缓存)

    当在HTML中链接CSS和JS文件时,可以通过添加版本号来刷新缓存。这样做的目的是确保浏览器能够获取到最新的文件,而不是使用缓存中的旧文件。下面是详细的攻略: 手动添加版本号:在HTML文件中手动添加版本号是最简单的方法。你可以在CSS和JS文件的链接后面添加一个查询参数,例如?v=1.0。每当你更新文件时,只需更改版本号即可。这会迫使浏览器重新下载文件,因…

    other 2023年8月2日
    00
  • 对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解

    【对jQuery的Ajax进行二次封装】 在实际的开发中,我们可能会在多次使用jQuery的Ajax时对其进行二次封装,目的是为了提高代码的复用性和减少代码的冗余。这里提供一种基于Promise的封装方式示例: “`javascript function myAjax(method, url, params) { return new Promise(fu…

    other 2023年6月25日
    00
  • c#与java中byte字节的区别及转换方法

    下面是“C#与Java中byte字节的区别及转换方法”的完整攻略,包括byte字节的区别、转换方法和两个示例说明等方面。 byte字节的区别 在C#和Java中,byte字节的数据类型都表示8位二进制数据。但是,它们在处理byte字节时有一些区别: C#中的byte字节是有符号的,取值范围为-128到127;而Java中的byte字节是无符号的,取值范围为0…

    other 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部