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日

相关文章

  • python导入openpyxl报错问题 终于解决啦

    Python导入openpyxl报错问题终于解决啦 最近我在写一个Python脚本,需要使用到openpyxl库,然而在导入openpyxl时,总是会提示错误信息。 错误信息大概如下: ImportError: No module named ‘openpyxl’ 经过我反复查看代码和下载安装包,浪费了不少时间,终于找到了解决方法,分享给大家。 问题分析 我…

    其他 2023年3月28日
    00
  • 版本号16.0.3823.1005新版Office 2016下载地址泄露!只修复了部分Bug

    版本号16.0.3823.1005新版Office 2016下载地址泄露!只修复了部分Bug攻略 1. 背景信息 最新版本号为16.0.3823.1005的Office 2016的下载地址已经泄露。这个新版本主要是为了修复一些已知的Bug,而没有引入新的功能或改变现有功能。在本攻略中,我们将详细讲解如何下载和安装这个新版本的Office 2016。 2. 下…

    other 2023年8月2日
    00
  • devicenotfound解决方案

    以下是详细讲解“devicenotfound解决方案的完整攻略,过程中至少包含两条示例说明”的标准Markdown格式文本: DeviceNotFound 解决方案 在 Android 开发中,有时会遇到 DeviceNotFound 的错误,这通常是由于 Android Studio 无法连接到设备或模拟器导致的。本攻略将介绍如何解决 DeviceNotF…

    other 2023年5月10日
    00
  • 使命召唤19网吧怎么玩 使命召唤19网吧进不去游戏的解决方法

    下面是详细讲解“使命召唤19网吧怎么玩 使命召唤19网吧进不去游戏的解决方法”的完整攻略: 使命召唤19网吧怎么玩 在网吧里使用游戏客户端进行游戏,可以享受到更加流畅的网络体验和更高清晰度的游戏画面。以下是网吧内玩使命召唤19的详细步骤: 打开电脑,接通网络线,并保证网络连接正常。 打开网吧提供的游戏客户端。 在游戏客户端中搜索“使命召唤19”,并下载游戏。…

    other 2023年6月27日
    00
  • iOS13.4beta4怎么升级 iOS13.4开发者预览版beta4全机型固件及描述文件下载

    下面是详细的攻略步骤: iOS13.4beta4升级攻略 1. 注册并获取预览版描述文件 首先,你需要在苹果的开发者网站上注册成为开发者。注册成功后,登录你的开发者账号,在“Downloads”-“iOS”-“iOS 13 beta”页面中找到“iOS 13.4 beta 4”的描述文件并下载。 示例说明1:获取描述文件的具体步骤 打开苹果开发者网站(htt…

    other 2023年6月27日
    00
  • ios7如何设置蜂窝移动网络数据?以iOS7测试版为例

    iOS7设置蜂窝移动网络数据攻略 本攻略将详细介绍如何在iOS7设备上设置蜂窝移动网络数据。以下是具体步骤: 步骤1:打开设置 首先,从主屏幕上找到并点击“设置”图标,以打开设置菜单。 步骤2:进入蜂窝移动网络设置 在设置菜单中,向下滚动并点击“蜂窝移动网络”选项,以进入蜂窝移动网络设置页面。 步骤3:启用蜂窝移动网络数据 在蜂窝移动网络设置页面,找到“蜂窝…

    other 2023年10月17日
    00
  • Linux常用命令之grep命令用法详解

    Linux常用命令之grep命令用法详解 简介 grep 是一个强大的文本搜索工具,用于在文件中查找指定的模式。它可以根据用户提供的正则表达式进行匹配,并输出匹配到的行。 基本用法 grep 命令的基本语法如下: grep [选项] 模式 [文件…] 其中,选项 可以是以下常用选项之一:- -i:忽略大小写进行匹配。- -v:反向匹配,输出不包含模式的行…

    other 2023年8月19日
    00
  • JavaWeb中Servlet的深入理解

    一、JavaWeb中Servlet的基础知识 Servlet是什么? Servlet是JavaEE中的一种规范,它是一个Web应用程序的组件,主要用于处理HTTP请求和响应。Servlet运行在服务器端,可以动态生成响应,也可以通过各种方式与客户端交互。 Servlet的生命周期 Servlet有4个生命周期阶段,分别是初始化、服务、销毁和被动态添加。其中,…

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