var filterBy = function (tableType) { $.fn.dataTableExt.afnFiltering.length = 0 $.fn.dataTable.ext.search.push(function (settings, data, dataIndex) { var type = data[1] // use data for the Type column if (type == tableType || tableType == 'All') { return true } return false }) } $(document).ready(function () { var activeObject var table = $('#column_table').DataTable({ deferRender: true, data: tableData, columns: [ { data: 'tableName' }, { data: 'tableType' }, { data: 'name' }, { data: 'type' }, { data: 'length' }, { data: 'nullable' }, { data: 'autoUpdated' }, { data: 'defaultValue' }, { data: 'comments' }, ], columnDefs: [ { targets: 0, render: function (data, type, row, meta) { return ( '' + data + '' ) }, }, { targets: 2, createdCell: function (td, cellData, rowData, row, col) { if (rowData.keyTitle.length > 0) { $(td).prop('title', rowData.keyTitle) } if (rowData.keyClass.length > 0) { $(td).addClass(rowData.keyClass) } }, }, { targets: 5, createdCell: function (td, cellData, rowData, row, col) { if (cellData == '√') { $(td).prop('title', 'nullable') } }, }, { targets: 6, createdCell: function (td, cellData, rowData, row, col) { if (cellData == '√') { $(td).prop('title', 'Automatically updated by the database') } }, }, ], lengthChange: false, paging: config.pagination, pageLength: 50, autoWidth: true, order: [[2, 'asc']], buttons: [ { text: 'All', action: function (e, dt, node, config) { filterBy('All') if (activeObject != null) { activeObject.active(false) } table.draw() }, }, { text: 'Tables', action: function (e, dt, node, config) { filterBy('Table') if (activeObject != null) { activeObject.active(false) } this.active(!this.active()) activeObject = this table.draw() }, }, { text: 'Views', action: function (e, dt, node, config) { filterBy('View') if (activeObject != null) { activeObject.active(false) } this.active(!this.active()) activeObject = this table.draw() }, }, { extend: 'columnsToggle', columns: '.toggle', }, ], }) //schemaSpy.js dataTableExportButtons(table) })