Datatables-Checkbox
by Alex Yhap
HTML
<script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css">
<script src="https://cdn.datatables.net/select/1.1.2/js/dataTables.select.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/select/1.1.2/css/select.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.1.2/js/dataTables.buttons.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.1.2/css/buttons.dataTables.min.css">
<table id="transactiontable" class="display">
<thead>
<tr>
<th></th>
<th>Individual</th>
<th>Recurring Gift</th>
<th>Transaction No</th>
<th>Amount</th>
</tr>
</thead>
<tfoot>
<tr>
<th id="selectedCheckboxes"></th>
<th></th>
<th></th>
<th></th>
<th id="amountSum">Sum: </th>
</tr>
</tfoot>
<tbody>
<tr>
<td style="">
<input type="checkbox" name="" id="0000001" value="false">
</td>
<td><a target="_blank" href="#">Alexander Yhap</a></td>
<td><a target="_blank" href="#">R-00001</a></td>
<td><a target="_blank" href="#">0000001</a></td>
<td class="amountCell">$117.00</td>
</tr>
<tr>
<td style="">
<input type="checkbox" name="" id="0000002" value="false">
</td>
<td><a target="_blank" href="#">Steven Strange</a></td>
...
JavaScript
j$ = jQuery.noConflict();
var globalRow;
var globalZero;
j$(document).ready( function () {
var events = j$('#events');
var transactionTable;
drawDataTables();
//displayCreatedPayments();
function drawDataTables(){
transactionTable = j$('[id$="transactiontable"]').DataTable({
"bFilter": false,
"bSort" : true,
order: [[ 1, 'asc' ]],
fixedHeader: true,
columnDefs: [ {
orderable: false,
className: 'select-checkbox',
targets: 0
} ],
select: {
style: 'os',
selector: 'td:first-child'
},
//TODO: rearrange dom; pagination, SHOWING 10 of 100, etc
buttons: [
'selectAll',
'selectNone'
],
dom: 'Bfrtip'
});
}
transactionTable
.on( 'select', function ( e, dt, type, indexes ) {
var sumSelected = 0;
transactionTable.rows( { selected: true } ).every( function ( rowIdx, tableLoop, rowLoop ) {
var data = this.data();
var checkboxCell = transactionTable.cell({ row: rowIdx, column: 0 }).node();
var amountCell = transactionTable.cell({ row: rowIdx, column: 4 }).node();
//CHECK HIDDEN CHECKBOX
var checkboxNode = j$('input', checkboxCell);
checkboxNode.attr('checked', true);
//CALCULATE SUM OF SELECTED
...