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表格组件神器【二、父子表和行列调序】”完整攻略的详细说明。

阅读剩余 76%

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

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

相关文章

  • 微信小程序的onlaunch()方法和onshow()方法

    微信小程序的onLaunch()方法和onShow()方法概述 在微信小程序中,onLaunch()方法和onShow()方法是两个重要的生命周期函数。onLaunch()方法在小程序初始化时调用,而onShow()方法在小程序启动或从后台进入前台时调用。这两个方法可以帮助开发者实现小程序的初始化和状态管理。 onLaunch()方法 onLaunch()方…

    other 2023年5月9日
    00
  • Java稀疏数组的应用实践

    Java稀疏数组的应用实践 什么是稀疏数组 在Java的数组中,大部分的数组元素都是非零元素。如果一个二维数组中非零元素的个数远远小于数组元素总数时,我们通常称这个二维数组为稀疏数组。 稀疏数组可以通过压缩算法来减少存储空间,常见的稀疏数组压缩方式是压缩成一个一维数组,其中每个元素保存非零元素的值及其所在的索引位置,从而达到节省空间的目的。 稀疏数组的应用场…

    other 2023年6月25日
    00
  • nodejs连接oracle数据库

    以下是详细讲解“Node.js连接Oracle数据库的完整攻略,过程中至少包含两条示例说明”的标准Markdown格式文本: Node.js连接Oracle数据库的完整攻略 Node.js是一种基于Chrome V8引擎的JavaScript运行环境,可以用于开发服务器端应用程序。本攻略将介绍如何使用Node.js连接Oracle数据库,包括安装Oracle…

    other 2023年5月10日
    00
  • MFC模拟实现自定义消息发送

    MFC框架中的自定义消息发送是一种非常常见的方式,它可以使得代码更加模块化,方便进行代码重构和维护。下面将介绍“MFC模拟实现自定义消息发送”的完整攻略,包括以下步骤: 1. 定义消息ID 在使用自定义消息时,首先需要定义消息ID。在MFC框架中,消息ID一般是一个整数值,可以使用WM_USER和WM_APP这两个宏定义,也可以使用自己定义的数值。其中,WM…

    other 2023年6月25日
    00
  • java弹幕小游戏1.0版本

    Java弹幕小游戏1.0版本是一款基于Java语言的游戏,支持玩家与电脑对战。以下是游戏的完整攻略: 准备工作 确保电脑已安装Java运行环境(JRE)。 下载并安装Java弹幕小游戏1.0版本软件。 开始游戏 启动Java弹幕小游戏1.0版本软件。 在主界面中选择单人游戏或双人游戏。 如选择单人游戏,则需要选择电脑难度级别,分别有初级、中级、高级三种选择。…

    other 2023年6月27日
    00
  • C++容器适配与栈的实现及dequeque和优先级详解

    C++容器适配与栈的实现及deque和优先级详解 容器适配器(Container Adapters)概述 容器适配器是C++标准库中的一类特殊容器,它们是由已有的基本数据结构通过组合和封装,扩展而来的。C++标准库提供了三种常见的容器适配器:栈(stack)、队列(queue)和优先级队列(priority_queue)。本文将重点讲解栈的实现以及deque…

    other 2023年6月28日
    00
  • Go 的入口函数和包初始化的使用

    下面是关于 Go 的入口函数和包初始化的使用的详细攻略。 入口函数 在 Go 语言中,程序的入口函数为 main 函数。每一个可执行的 Go 程序都必须包含一个 main 函数。main 函数的形式如下: func main() { // 程序的入口代码 } 在 main 函数中,你可以编写程序的入口代码。这个函数将在程序启动时自动被调用。在 main 函数…

    other 2023年6月20日
    00
  • 详解Java数据结构和算法(有序数组和二分查找)

    详解Java数据结构和算法(有序数组和二分查找) 有序数组定义 有序数组是一种使用有序方式存储元素的数据结构。它保证元素的顺序和插入顺序相同。这意味着,如果一个元素插入到数组中,其位置将根据其大小和数组中其他元素的大小确定。 有序数组的实现 我们可以使用Java中的数组来实现有序数组。但在插入和删除元素时,我们必须确保数组仍然保持有序。有序数组的插入和删除操…

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