$(document).ready(function () { $('product-list').DataTable(); // Basic table example $('#basic-1').DataTable(); $('#basic-2').DataTable({ "paging": true, "ordering": false, "info": false }); $('#basic-3').DataTable({ "order": [[3, "desc"]] }); $('#basic-4').DataTable({ columnDefs: [{ targets: [0], orderData: [0, 1] }, { targets: [1], orderData: [1, 0] }, { targets: [4], orderData: [4, 0] }] }); $('table.show-case').DataTable(); $('#basic-5').DataTable({ "columnDefs": [ { "targets": [2], "visible": false, "searchable": false }, { "targets": [3], "visible": false } ] }); $('#basic-6').DataTable(); $('#basic-7').DataTable({ "dom": '<"wrapper"ltipf>' }); $('#basic-8').DataTable(); $('#basic-9').DataTable({ stateSave: true }); $('#basic-10').DataTable({ "pagingType": "full_numbers" }); $('#basic-11').DataTable({ "scrollY": "200px", "scrollCollapse": true, "paging": false }); $('#basic-12').DataTable({ scrollY: '40vh', scrollCollapse: true, paging: false }); $('#basic-13').DataTable({ "scrollY": 200, "scrollX": true }); $('#basic-14').DataTable({ "language": { "decimal": ",", "thousands": "." } }); // Advance data table var table = $('#advance-1').DataTable(); $('#advance-1 tbody').on('click', 'tr', function () { var data = table.row(this).data(); // alert( 'You clicked on '+data[0]+'\'s row' ); }); var eventFired = function (type) { var n = $('#demo_info')[0]; n.innerHTML += '
' + type + ' event - ' + new Date().getTime() + '
'; n.scrollTop = n.scrollHeight; } $('#advance-2') .on('order.dt', function () { eventFired('Order'); }) .on('search.dt', function () { eventFired('Search'); }) .on('page.dt', function () { eventFired('Page'); }) .DataTable(); $('#advance-3').DataTable({ "columnDefs": [ { "render": function (data, type, row) { return data + ' (' + row[3] + ')'; }, "targets": 0 }, { "visible": false, "targets": [3] } ] }); $('#advance-4').DataTable({ "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]] }); $('#advance-5').DataTable({ "dom": '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>' }); $('#advance-6').DataTable({ "columnDefs": [{ "visible": false, "targets": -1 }] }); $('#advance-7').DataTable({ "columns": [ { "data": "name" }, { "data": "position" }, { "data": "office" }, { "data": "age" }, { "data": "start_date" }, { "data": "salary" } ] }); $('#advance-8').DataTable({ "language": { "url": "../assets/json/German.json" } }); $('#advance-9').DataTable({ "searching": false, "ordering": false }); $('#advance-10').DataTable({ "createdRow": function (row, data, index) { if (data[5].replace(/[\$,]/g, '') * 1 > 150000) { $('td', row).eq(5).addClass('text-danger'); } } }); var table = $('#advance-11').DataTable({ "columnDefs": [ { "visible": false, "targets": 2 } ], "order": [[2, 'asc']], "displayLength": 25, "drawCallback": function (settings) { var api = this.api(); var rows = api.rows({ page: 'current' }).nodes(); var last = null; api.column(2, { page: 'current' }).data().each(function (group, i) { if (last !== group) { $(rows).eq(i).before( '' + group + '' ); last = group; } }); } }); $('#advance-11 tbody').on('click', 'tr.group', function () { var currentOrder = table.order()[0]; if (currentOrder[0] === 2 && currentOrder[1] === 'asc') { table.order([2, 'desc']).draw(); } else { table.order([2, 'asc']).draw(); } }); $('#advance-12').DataTable({ "footerCallback": function (row, data, start, end, display) { var api = this.api(), data; var intVal = function (i) { return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0; }; total = api .column(4) .data() .reduce(function (a, b) { return intVal(a) + intVal(b); }, 0); pageTotal = api .column(4, { page: 'current' }) .data() .reduce(function (a, b) { return intVal(a) + intVal(b); }, 0); $(api.column(4).footer()).html( '$' + pageTotal + ' ( $' + total + ' total)' ); } }); $('#advance-13').DataTable({ "dom": '<"toolbar">frtip' }); $("div.toolbar").html('Hello This is custom toolbar'); $('#advance-14').DataTable({ "aoColumns": [ null, null, { "orderSequence": ["asc"] }, { "orderSequence": ["desc", "asc", "asc"] }, { "orderSequence": ["desc"] }, null ] }); $('#example-style-1').DataTable(); $('#example-style-2').DataTable(); $('#example-style-3').DataTable(); $('#example-style-4').DataTable(); $('#example-style-5').DataTable(); $('#example-style-6').DataTable(); $('#example-style-7').DataTable(); $('#example-style-8').DataTable(); // Data sources tables $('#data-source-1').DataTable(); $('#data-source-2').DataTable({ "ajax": '../assets/ajax/arrays.txt' }); var dataSet = [ ["Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$320,800"], ["Garrett Winters", "Accountant", "Tokyo", "8422", "2011/07/25", "$170,750"], ["Ashton Cox", "Junior Technical Author", "San Francisco", "1562", "2009/01/12", "$86,000"], ["Cedric Kelly", "Senior Javascript Developer", "Edinburgh", "6224", "2012/03/29", "$433,060"], ["Airi Satou", "Accountant", "Tokyo", "5407", "2008/11/28", "$162,700"], ["Brielle Williamson", "Integration Specialist", "New York", "4804", "2012/12/02", "$372,000"], ["Herrod Chandler", "Sales Assistant", "San Francisco", "9608", "2012/08/06", "$137,500"], ["Rhona Davidson", "Integration Specialist", "Tokyo", "6200", "2010/10/14", "$327,900"], ["Colleen Hurst", "Javascript Developer", "San Francisco", "2360", "2009/09/15", "$205,500"], ["Sonya Frost", "Software Engineer", "Edinburgh", "1667", "2008/12/13", "$103,600"], ["Jena Gaines", "Office Manager", "London", "3814", "2008/12/19", "$90,560"], ["Quinn Flynn", "Support Lead", "Edinburgh", "9497", "2013/03/03", "$342,000"], ["Charde Marshall", "Regional Director", "San Francisco", "6741", "2008/10/16", "$470,600"], ["Haley Kennedy", "Senior Marketing Designer", "London", "3597", "2012/12/18", "$313,500"], ["Tatyana Fitzpatrick", "Regional Director", "London", "1965", "2010/03/17", "$385,750"], ["Michael Silva", "Marketing Designer", "London", "1581", "2012/11/27", "$198,500"], ["Paul Byrd", "Chief Financial Officer (CFO)", "New York", "3059", "2010/06/09", "$725,000"], ["Gloria Little", "Systems Administrator", "New York", "1721", "2009/04/10", "$237,500"], ["Bradley Greer", "Software Engineer", "London", "2558", "2012/10/13", "$132,000"], ["Dai Rios", "Personnel Lead", "Edinburgh", "2290", "2012/09/26", "$217,500"], ["Jenette Caldwell", "Development Lead", "New York", "1937", "2011/09/03", "$345,000"], ["Yuri Berry", "Chief Marketing Officer (CMO)", "New York", "6154", "2009/06/25", "$675,000"], ["Caesar Vance", "Pre-Sales Support", "New York", "8330", "2011/12/12", "$106,450"], ["Doris Wilder", "Sales Assistant", "Sidney", "3023", "2010/09/20", "$85,600"], ["Angelica Ramos", "Chief Executive Officer (CEO)", "London", "5797", "2009/10/09", "$1,200,000"], ["Gavin Joyce", "Developer", "Edinburgh", "8822", "2010/12/22", "$92,575"], ["Jennifer Chang", "Regional Director", "Singapore", "9239", "2010/11/14", "$357,650"], ["Brenden Wagner", "Software Engineer", "San Francisco", "1314", "2011/06/07", "$206,850"], ["Fiona Green", "Chief Operating Officer (COO)", "San Francisco", "2947", "2010/03/11", "$850,000"], ["Shou Itou", "Regional Marketing", "Tokyo", "8899", "2011/08/14", "$163,000"], ["Michelle House", "Integration Specialist", "Sidney", "2769", "2011/06/02", "$95,400"], ["Suki Burks", "Developer", "London", "6832", "2009/10/22", "$114,500"], ["Prescott Bartlett", "Technical Author", "London", "3606", "2011/05/07", "$145,000"], ["Gavin Cortez", "Team Leader", "San Francisco", "2860", "2008/10/26", "$235,500"], ["Martena Mccray", "Post-Sales support", "Edinburgh", "8240", "2011/03/09", "$324,050"], ["Unity Butler", "Marketing Designer", "San Francisco", "5384", "2009/12/09", "$85,675"] ]; $('#data-source-3').DataTable({ data: dataSet, columns: [ { title: "Name" }, { title: "Position" }, { title: "Office" }, { title: "Extn." }, { title: "Start date" }, { title: "Salary" } ] }); $('#data-source-4').DataTable({ "processing": true, "serverSide": true, "ajax": "../assets/json/server-side.json" }); // API Data Tables var t = $('#API-1').DataTable(); var counter = 10; $('#addRow').on('click', function () { t.row.add([ counter + '1', counter + '.2', counter + '.3', counter + '.4', counter + '.5' ]).draw(false); counter++; }); // Automatically add a first row of data $('#addRow').click(); $('#addRow').click(); $('#addRow').click(); // Setup - add a text input to each footer cell $('#API-2 tfoot th').each(function () { var title = $(this).text(); $(this).html(''); }); var table = $('#API-2').DataTable(); table.columns().every(function () { var that = this; $('input', this.footer()).on('keyup change', function () { if (that.search() !== this.value) { that .search(this.value) .draw(); } }); }); $('#API-3').DataTable({ initComplete: function () { this.api().columns().every(function () { var column = this; var select = $('') .appendTo($(column.footer()).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('') }); }); } }); var table = $('#API-4').DataTable(); $('#API-4 tbody') .on('mouseenter', 'td', function () { var colIdx = table.cell(this).index().column; $(table.cells().nodes()).removeClass('highlight'); $(table.column(colIdx).nodes()).addClass('highlight'); }); function format(d) { return '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
Full name:' + d.name + '
Extension number:' + d.extn + '
Extra info:And any further details here (images etc)...
'; } //chield row multiple data table start here var ct = $('#API-chield-row').DataTable({ "ajax": "../assets/ajax/api.txt", "columns": [{ "className": 'details-control', "orderable": false, "data": null, "defaultContent": '' }, { "data": "name" }, { "data": "position" }, { "data": "office" }, { "data": "salary" }], "order": [ [1, 'asc'] ] }); $('#API-chield-row tbody').on('click', 'td.details-control', function () { var tr = $(this).closest('tr'); var row = ct.row(tr); if (row.child.isShown()) { row.child.hide(); tr.removeClass('shown'); } else { row.child(format(row.data())).show(); tr.addClass('shown'); } }); //chield row multiple data table end here //row select multiple data table start here var srow = $('#row-select-multiple').DataTable(); $('#row-select-multiple tbody').on('click', 'tr', function () { $(this).toggleClass('selected'); }); $('#multiple-row-select-btn').on('click', function () { alert(srow.rows('.selected').data().length + ' row(s) selected'); }); //row select multiple data table end here //single row delete data table start here var deleterow = $('#row-select-delete').DataTable(); $('#row-select-delete tbody').on('click', 'tr', function () { if ($(this).hasClass('selected')) { $(this).removeClass('selected'); } else { deleterow.$('tr.selected').removeClass('selected'); $(this).addClass('selected'); } }); $('#single-row-delete-btn').on('click', function () { deleterow.row('.selected').remove().draw(!1); }); //single row delete data table end here //form input submit start here var table = $('#form-input-datatable').DataTable(); $('#form-input-datatable-submit').on('click', function () { var data = table.$('input, select').serialize(); alert("The following data would have been submitted to the server: \n\n" + data.substr(0, 120) + '...'); return false; }); //form input submit end here //show hide column start here var sh = $('#show-hide-datatable').DataTable({ "scrollY": "200px", "paging": false }); //show hide column end here //seach API regular expression start function filterGlobal() { $('#search-api-datatable').DataTable().search($('#g-filter').val(), $('#global_regex').prop('checked'), $('#global_smart').prop('checked')).draw(); } function filterColumn(i) { $('#search-api-datatable').DataTable().column(i).search($('#col' + i + '_filter').val(), $('#col' + i + '_regex').prop('checked'), $('#col' + i + '_smart').prop('checked')).draw(); } $('#search-api-datatable').DataTable(); $('input.g-filter').on('keyup click', function () { filterGlobal(); }); $('input.column_filter').on('keyup click', function () { filterColumn($(this).parents('tr').attr('data-column')); }); //seach API regular expression start //Ajax Data Source (Arrays) start $('#ajax-data-array').DataTable({ "ajax": "../assets/ajax/arrays.txt", }); //Ajax Data Source (Arrays) start //Ajax Data Source (object) start $('#ajax-data-object').DataTable({ "ajax": "../assets/ajax/object.txt", "columns": [{ "data": "name" }, { "data": "position" }, { "data": "office" }, { "data": "extn" }, { "data": "start_date" }, { "data": "salary" }] }); //Ajax Data Source (object) end //Ajax nested object data start $('#ajax-data-nested-object').DataTable({ "processing": true, "ajax": "../assets/ajax/object_nested.txt", "columns": [{ "data": "name" }, { "data": "hr.position" }, { "data": "contact.0" }, { "data": "contact.1" }, { "data": "hr.start_date" }, { "data": "hr.salary" }] }); //Ajax nested object data start //Ajax orthogonal data start here $('#orthogonal-data').DataTable({ ajax: "../assets/ajax/orthogonal.txt", columns: [{ data: "name" }, { data: "position" }, { data: "office" }, { data: "extn" }, { data: { _: "start_date.display", sort: "start_date.timestamp" } }, { data: "salary" }] }); //Ajax orthogonal data end here // Ajax Generated content for a column start var generatetable = $('#auto-generate-content').DataTable({ "ajax": "../assets/ajax/arrays.txt", "columnDefs": [{ "targets": -1, "data": null, "defaultContent": "" }] }); $('#auto-generate-content tbody').on('click', 'button', function () { var data = generatetable.row($(this).parents('tr')).data(); alert(data[0] + "'s salary is: " + data[5]); }); // Ajax Generated content for a column end //Ajax render start here $('#render-datatable').DataTable({ "ajax": "../assets/ajax/arrays.txt", "deferRender": true }); //Ajax render end here // Server Side proccessing start $('#server-side-datatable').DataTable({ "processing": true, "serverSide": true, "ajax": "../assets/ajax/server-processing.php" }); //http server side datatable start $('#datatable-http').DataTable({ "processing": true, "serverSide": true, "ajax": { url: "../assets/ajax/server-processing.php", data: function (d) { d.myKey = "myValue"; } }, "columns": [{ "data": "first_name" }, { "data": "last_name" }, { "data": "position" }, { "data": "office" }, { "data": "start_date" }, { "data": "salary" }] }); //http server side datatable end //datatable post start here $('#datatable-post').DataTable({ "processing": true, "serverSide": true, "ajax": { url: "../assets/ajax/post.php", type: "post" }, "columns": [{ "data": "first_name" }, { "data": "last_name" }, { "data": "position" }, { "data": "office" }, { "data": "start_date" }, { "data": "salary" }] }); //datatable post start here var table = $('#dt-plugin-method').DataTable(); $('').prependTo('.dt-plugin-buttons').on('click', function () { alert('Column sum is: ' + table.column(3).data().sum()); }); $('').prependTo('.dt-plugin-buttons').on('click', function () { alert('Column sum is: ' + table.column(3, { page: 'current' }).data().sum()); }); //Api datatable end here //Ordering Plug-ins (with type detection) start here $.fn.dataTable.ext.type.detect.unshift(function (d) { return d === 'Low' || d === 'Medium' || d === 'High' ? 'salary-grade' : null; }); $.fn.dataTable.ext.type.order['salary-grade-pre'] = function (d) { switch (d) { case 'Low': return 1; case 'Medium': return 2; case 'High': return 3; } return 0; }; $('#datatable-ordering').DataTable(); //Ordering Plug-ins (with type detection) end here //Range plugin datatable start here $.fn.dataTable.ext.search.push(function (settings, data, dataIndex) { var min = parseInt($('#min').val(), 10); var max = parseInt($('#max').val(), 10); var age = parseFloat(data[3]) || 0; if ((isNaN(min) && isNaN(max)) || (isNaN(min) && age <= max) || (min <= age && isNaN(max)) || (min <= age && age <= max)) { return true; } return false; }); var dtage = $('#datatable-range').DataTable(); $('#min, #max').keyup(function () { dtage.draw(); }); //Range plugin datatable end here //datatable dom ordering start here $.fn.dataTable.ext.order['dom-text'] = function (settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function (td, i) { return $('input', td).val(); }); } $.fn.dataTable.ext.order['dom-text-numeric'] = function (settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function (td, i) { return $('input', td).val() * 1; }); } $.fn.dataTable.ext.order['dom-select'] = function (settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function (td, i) { return $('select', td).val(); }); } $.fn.dataTable.ext.order['dom-checkbox'] = function (settings, col) { return this.api().column(col, { order: 'index' }).nodes().map(function (td, i) { return $('input', td).prop('checked') ? '1' : '0'; }); } $(document).ready(function () { $('#datatable-livedom').DataTable({ "columns": [null, { "orderDataType": "dom-text-numeric" }, { "orderDataType": "dom-text", type: 'string' }, { "orderDataType": "dom-select" }] }); }); //datatable dom ordering end here });