var filterBy = function (tableType) { $.fn.dataTableExt.afnFiltering.length = 0 $.fn.dataTable.ext.search.push(function (settings, data, dataIndex) { var type = data[data.length - 2] // use data for the Type column, which is the second to last if (type == tableType || tableType == 'All') { return true } return false }) } $(document).ready(function () { var activeObject var table = $('#database_objects').DataTable({ lengthChange: false, paging: config.pagination, pageLength: 50, order: [[0, '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) })