<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    
<link href="https://cdn.datatables.net/1.10.25/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
<script src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.js"></script>
 <link href="https://editor.datatables.net/extensions/Editor/css/editor.dataTables.min.css" rel="stylesheet" type="text/css" />
<script src="https://editor.datatables.net/extensions/Editor/js/dataTables.editor.min.js"></script>   
    
    <meta charset="utf-8">
    
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
      <table id="example" class="display nowrap" width="100%">
        <thead>
          <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Status</th>
            <th>Salary</th>
          </tr>
        </thead>
        <tfoot>
          <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
            <th>Age</th>
            <th>Status</th>
            <th>Salary</th>
          </tr>
        </tfoot>
        <tbody>
          <tr>
            <td>Tiger Nixon</td>
            <td>System Architect</td>
            <td>Edinburgh</td>
            <td>61</td>
            <td>Created</td>
            <td>$3,120</td>
          </tr>
          <tr>
            <td>Garrett Winters</td>
            <td>Director</td>
            <td>Edinburgh</td>
            <td>63</td>
            <td>Created</td>
            <td>$5,300</td>
          </tr>
          <tr>
            <td>Ashton Cox</td>
            <td>Technical Author</td>
            <td>San Francisco</td>
            <td>66</td>
            <td>Completed</td>
            <td>$4,800</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(){    
var editor;
var statusSelectOptions = [
    {
        "label": "Completed",
        "value": "2"
    },
    {
        "label": "Created",
        "value": "1"
    }
];
  editor = new $.fn.DataTable.Editor({
        table: "#example",
        fields: [{
          "label": "Status",
          "name": "Status",
          "type": "select",
          "options": statusSelectOptions
        }]
  });
  
  var tab = $("#example").DataTable({
        dom: "Bfrtlip",
        columnsDef:[{
                targets: 4,
                render: function (data, type, row){
                    if (type === 'display' || type === 'filter') {
                        return $.grep( statusSelectOptions, function(obj){return obj.value == data;})[0].label;
                    }
                    return data;
                }
            }
        ],
        columns: 
                [
            {
                "title": "Status",
                "data": "Status",
                render: function (data, type, row) {
                    return $.grep( statusSelectOptions, function(obj){return obj.value == data;})[0].label;
                }
            }
        ],
        initComplete: function () {
            tab.columns().every( function () {
                var column = this;
                var select = $('<select id="SelectFilter" onchange="clearOtherColumnFilter(\'TextFilter\')"><option value=""></option></select>')
                .appendTo( $('#example thead tr:eq(1) th').eq(column.index()).empty() )
                .on( 'change', function () {
                    var val = $.fn.DataTable.util.escapeRegex(
                        $(this).val()
                    );
                    column.search( val ? '^'+val+'$' : '', true, false ).draw();
                });
                
                column.data().unique().sort().each( function ( d, j ){
                    select.append( '<option value="'+d+'">'+d+'</option>');
                });
                
                $('select', this.header()).click(function(event) {
                    event.stopPropagation();
                });
            });
        }
    });
 });
Output 300px

This bin was created anonymously and its free preview time has expired. Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers