<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
      <button>Update Status</button>
      <table id="example" class="display nowrap" width="100%">
        <thead>
          <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
          </tr>
        </thead>
        <tfoot>
          <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
          </tr>
        </tfoot>
        <tbody>
          <tr>
            <td>Tiger Nixon</td>
            <td></td>
            <td>Edinburgh</td>
          </tr>
          <tr>
            <td>Garrett Winters</td>
            <td></td>
            <td>Edinburgh</td>
           </tr>
          <tr>
            <td>Ashton Cox</td>
            <td></td>
            <td>San Francisco</td>
          </tr>
        </tbody>
      </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;
}
 
$(document).ready( function () {
  
  // simlated ajax response
  var statuses = [
    {id: 'Tiger Nixon', status: 'Inactive'},
    {id: 'Garrett Winters', status: 'Inactive'},
    {id: 'Ashton Cox', status: 'Active'},
  ];
  
  
  var table = $('#example').DataTable({
    rowId: 'name',
    columns: [
      { data: 'name' },
      { data: null,
        defaultContent: '',
        render: function (data, type, row) {
          return '<button>' + (data.status === undefined ? 'Unknown' : data.status) + '</button>';
        }
      },
      { data: 'office' }
    ]
  });
  
  
  $('button').on('click', function () {
    
    statuses.forEach((element) => {
      var id = element.id;
      var status = element.status;
      
      // Get row and row data
      var row = table.row( '#' + id);
      var data = row.data();
      
      // Update the status
      data.status = status;
      
      // Update the row data
      row.data( data ); 
      
    });
    
    // Update the table - render will run updating the button text
    table.draw();
  });
} );
1 warning
Line 28: 'arrow function syntax (=>)' is available in ES6 (use esnext option) or Mozilla JS extensions (use moz).
Output

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

Dismiss x
public
Bin info
anonymouspro
0viewers