<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <link href="https://cdn.datatables.net/buttons/1.3.1/css/buttons.dataTables.min.css" type="text/css" />
    <script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.min.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
        <p></p>
  <button id="showExtraInfo" data-status="false">Hide All Child Rows</Button>
  <p></p>
  
    <div class="container">
<table id="example" class="display" style="width:100%">
        <thead>
            <tr>
                <th></th>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th></th>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Salary</th>
            </tr>
        </tfoot>
    </table>
    </div>
  </body>
</html>
 
body {
  font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
 
function format ( d ) {
    return '<div class = "childRowClass">'+d['salary']+'</div>';
}
 
$(document).ready(function() {
    var table = $('#example').DataTable( {
        "ajax": "/ajax/objects.txt",
        "dom": "Blfrtp",
        "buttons": [
          {
            text: 'Close Child Rows',
            className: 'close',
            action: function ( e, dt, node, config ) {
              lastPage = $('#example').DataTable().page();
              var table = $('#example').DataTable();
              table.rows().every(function () {
                  var row = this;
                  if (row.child.isShown() == true) {
                    row.child.hide();
                  }
              });
            }
          },
          {
            text: 'Open Child Rows',
            className: 'open',
            action: function ( e, dt, node, config ) {
              lastPage = $('#example').DataTable().page();
              var table = $('#example').DataTable();
              table.rows().every(function () {
                  var row = this;
                  if (row.child.isShown() == false) {
                    row.child( format(row.data()) ).show();
                  }
              });
            }
          },
        ],
        "columns": [
            {
                "className":      'details-control',
                "orderable":      false,
                "data":           null,
                "defaultContent": ''
            },
            { "data": "name" },
            { "data": "position" },
            { "data": "office" },
            { "data": "salary" }
        ],
        "order": [[1, 'asc']]
    } );
  
  
          $('#showExtraInfo').on('click', function() {
          if($("#showExtraInfo").attr('data-status')=="false"){
            $("#showExtraInfo").attr('data-status','true');
            $("#showExtraInfo").html('Show All Child Rows');
            table.button('.open').trigger();
            }
          else {
            $("#showExtraInfo").attr('data-status','false');
            $("#showExtraInfo").html('Hide All Child Rows');
            table.button('.close').trigger();
           }
            });
     
  
} );
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers