jQuery 如何使用DataTables插件显示子行信息

jQuery 如何使用DataTables插件显示子行信息

在本文中,我们将学习如何使用jQuery DataTables插件显示子行信息。我们还将提供一些HTML代码示例来说明此功能的使用方法。

jQuery DataTables是一个功能强大的插件,它提供了一种在网页上显示表格数据的简单方式。它具有许多功能,如分页、排序、搜索等。它还为我们提供了DataTables插件,它使我们能够显示子行信息,并因此显示与每行相关的附加数据。

现在,让我们通过一些示例来了解这个功能。

示例1

在这个示例中,我们将创建一个包含员工列表和一些有关员工的信息的简单HTML表格。我们还将添加子行信息,并使用一个函数来定义其内容。

<html lang="en">
<head>
   <title>How to display child row information using jQuery DataTables plugin?</title>
   <!-- Include jQuery library -->
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

   <!-- Include DataTables library -->
   <script src="https://cdn.datatables.net/1.11.1/js/jquery.dataTables.min.js"></script>

   <!-- Include required CSS files -->
   <link rel="stylesheet" href="https://cdn.datatables.net/1.11.1/css/jquery.dataTables.min.css">
   <link rel="stylesheet" href="https://cdn.datatables.net/1.11.1/css/jquery.dataTables_themeroller.css">

</head>
<body>
   <h3>How to display child row information using jQuery DataTables plugin?</h3>
   <table id="employee-table">
      <thead>
         <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Salary</th>
         </tr>
      </thead>
      <tbody>
         <tr>
            <td>John Doe</td>
            <td>Manager</td>
            <td>80,000</td>
         </tr>
         <tr>
            <td>Jane Smith</td>
            <td>Developer</td>
            <td>60,000</td>
         </tr>
         <tr>
            <td>Bob Johnson</td>
            <td>Developer</td>
            <td>50,000</td>
         </tr>
      </tbody>
   </table>

   <script>(document).ready(function() {
         ('#employee-table').DataTable({
            "paging": false,
            "info": false,
            "columnDefs": [
               {
                  "targets": [1],
                  "className": "details-control"
               }
            ],
            "order": [[0, 'asc']],
            "drawCallback": function() {('.details-control').unbind('click').on('click', function() {
               var tr = (this).closest('tr');
               var row =('#employee-table').DataTable().row(tr);

               if (row.child.isShown()) {
                  row.child.hide();
                  tr.removeClass('shown');
               } else {
                  row.child(format(row.data())).show();
                  tr.addClass('shown');
               }
            });
         }
      });

      function format(d) {
         return '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">' +
            '<tr>' +
            '<td>Name:</td>' +
            '<td>' + d[0] + '</td>' +
            '</tr>' +
            '<tr>' +
            '<td>Position:</td>' +
            '<td>' + d[1] + '</td>' +
            '</tr>' +
            '</tablev';
         }
      });
   </script>
</body>
</html>

示例 2

在这个示例中,我们将在每一行中添加一个类名为”details-control”的按钮,当点击时,它将使用format函数将内联HTML内容显示为子行。子行将包含有关相应员工的额外详细信息。

文件名:index.html

<html lang="en">
<head>
   <title>How to display child row information using jQuery DataTables plugin?</title>
   <!-- Include jQuery library -->
   <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

   <!-- Include DataTables library -->
   <script src="https://cdn.datatables.net/1.11.1/js/jquery.dataTables.min.js"></script>

   <!-- Include required CSS files -->
   <link rel="stylesheet" href="https://cdn.datatables.net/1.11.1/css/jquery.dataTables.min.css">
   <link rel="stylesheet" href="https://cdn.datatables.net/1.11.1/css/jquery.dataTables_themeroller.css">

</head>
<body>
   <h3>How to display child row information using jQuery DataTables plugin?</h3>
   <table id="employee-table">
      <thead>
         <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Salary</th>
         </tr>
      </thead>
      <tbody>
         <tr>
            <td>John Doe</td>
            <td>Manager</td> 
            <td>80,000</td>
         </tr>
         <tr>
            <td>Jane Smith</td>
            <td>Developer</td>
            <td>60,000</td>
         </tr>
      </tbody>
   </table>
   <script>
      (document).ready(function() {
         const table =('#employee-table').DataTable({
            "columnDefs": [
               {
                  "targets": [0, 1],
                  "className": "details-control",
                  "orderable": false
               }
            ],
            "order": [[0, 'asc']]
         });

         ('#employee-table tbody').on('click', 'td.details-control', function () {
            const tr =(this).closest('tr');
            const row = table.row(tr);

            if (row.child.isShown()) {
               // This row is already open - close it
               row.child.hide();
               tr.removeClass('shown');
            } else {
               // Open this row
               row.child(format(row.data())).show();
               tr.addClass('shown');
            }
         });

         function format(data) {
            const details = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">' +
               '<tr>' +
               '<td>Name:</td>' +
               '<td>' + data[0] + '</td>' +
               '</tr>' +
               '<tr>' +
               '<td>Position:</td>' +
               '<td>' + data[1] + '</td>' +
               '</tr>' +
               '</table>';
            return details;
        }
      });
   </script>
</body>
</html>

结论

总之,jQuery DataTables插件提供了一种简单高效的方式,可以在网页上以表格的形式展示数据。它提供了很多功能,包括显示关于父级行的附加信息,如嵌套行或子行。通过按照本文中概述的步骤,我们学会了如何使用jQuery DataTables插件显示子行信息。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

jQuery 精选笔记