dataTables Select Row Issue
I have the following html for a table...
- <table id="timesheet" class="inner" border="0" cellspacing="0" cellpadding="0" width="100%">
<thead>
<tr>
<th class="udatal" width="33%">Project-Name</th>
<th class="udatal" width="25%">Phase-Description</th>
<th class="udatar" width="05%">Mon</th>
<th class="udatar" width="05%">Tue</th>
<th class="udatar" width="05%">Wed</th>
<th class="udatar" width="05%">Thr</th>
<th class="udatar" width="05%">Fri</th>
<th class="udatar" width="05%">Sat</th>
<th class="udatar" width="05%">Sun</th>
<th class="udatar" width="07%">Total</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
<tr class="footer">
<th class="udatal" width="33%"></th>
<th class="udatar" width="25%">Total:</th>
<th class="udatar" width="05%"></th>
<th class="udatar" width="05%"></th>
<th class="udatar" width="05%"></th>
<th class="udatar" width="05%"></th>
<th class="udatar" width="05%"></th>
<th class="udatar" width="05%"></th>
<th class="udatar" width="05%"></th>
<th class="udatar" width="07%"></th>
</tr>
</tfoot>
</table>
And the following dataTables javaScript code
- // Check for click of view button
$('#buttonVue').click(function() {
// *********************************************************************************************** dataTable configuration
var sDate = form_edit.ts_Date.value;
if ( sDate == 'Enter Date' ) {
alert('Please enter a valid date');
} else {
var sEmpNum = form_edit.ts_EmpNum.value;
var sParams = '?tsEmpNum=' + sEmpNum + '&tsDate=' + sDate;
oTable = $('#timesheet').dataTable( {
'bAutoWidth': false,
'bDestroy': true,
'bFilter': false,
'bInfo': false,
'bLengthChange': false,
'bPaginate': false,
'bProcessing': false,
'bServerSide': true,
'bSort': false,
'bVisible': true,
'sAjaxSource': 'files_json/get_Timesheets.php' + sParams,
//'sPaginationType': 'full_numbers',
'aoColumns': [
{ 'mDataProp': 'ts_cProject', 'sClass': 'udatal' },
{ 'mDataProp': 'ts_cPhase', 'sClass': 'udatal' },
{ 'mDataProp': 'ts_Mon', 'sClass': 'udatar' },
{ 'mDataProp': 'ts_Tue', 'sClass': 'udatar' },
{ 'mDataProp': 'ts_Wed', 'sClass': 'udatar' },
{ 'mDataProp': 'ts_Thr', 'sClass': 'udatar' },
{ 'mDataProp': 'ts_Fri', 'sClass': 'udatar' },
{ 'mDataProp': 'ts_Sat', 'sClass': 'udatar' },
{ 'mDataProp': 'ts_Sun', 'sClass': 'udatar' },
{ 'mDataProp': 'ts_cTotal', 'sClass': 'udatar' }
], // End of aoColumns
"fnFooterCallback": function ( nRow, aaData, iStart, iEnd, aiDisplay ) {
// Calculate the sum for Mon
var monTotal = 0.0;
var tueTotal = 0.0;
var wedTotal = 0.0;
var thrTotal = 0.0;
var friTotal = 0.0;
var satTotal = 0.0;
var sunTotal = 0.0;
var totTotal = 0.0;
for ( var i=0; i<aaData.length; i++ ) {
monTotal += parseFloat(aaData[i]['ts_Mon']);
tueTotal += parseFloat(aaData[i]['ts_Tue']);
wedTotal += parseFloat(aaData[i]['ts_Wed']);
thrTotal += parseFloat(aaData[i]['ts_Thr']);
friTotal += parseFloat(aaData[i]['ts_Fri']);
satTotal += parseFloat(aaData[i]['ts_Sat']);
sunTotal += parseFloat(aaData[i]['ts_Sun']);
totTotal += parseFloat(aaData[i]['ts_cTotal']);
}
var nCells = nRow.getElementsByTagName('th');
nCells[2].innerHTML = monTotal.toFixed(2);
nCells[3].innerHTML = tueTotal.toFixed(2);
nCells[4].innerHTML = wedTotal.toFixed(2);
nCells[5].innerHTML = thrTotal.toFixed(2);
nCells[6].innerHTML = friTotal.toFixed(2);
nCells[7].innerHTML = satTotal.toFixed(2);
nCells[8].innerHTML = sunTotal.toFixed(2);
nCells[9].innerHTML = totTotal.toFixed(2);
}, // End of fnFooterCallback
}); // End of dataTable
var sStatus = '';
var cStatus = '';
$('#text_Status').removeClass('status_Active');
$('#text_Status').removeClass('status_Submit');
$('#text_Status').removeClass('status_Posted');
if ( $('#ts_Status').val() == 'P' ) {
sStatus = 'Posted';
cStatus = 'status_Posted';
$('#buttonSub').hide();
$('#buttonNew').hide();
$('#div_ProjectPhase').hide();
$('#div_EditDelete').hide();
}
if ( $('#ts_Status').val() == 'S' ) {
sStatus = 'Submitted';
cStatus = 'status_Submit';
$('#buttonNew').show();
$('#buttonSub').hide();
$('#div_ProjectPhase').hide();
$('#div_EditDelete').hide();
}
if ( $('#ts_Status').val() == 'A' ) {
sStatus = 'Active';
cStatus = 'status_Active';
$('#buttonSub').show();
$('#buttonNew').show();
$('#div_ProjectPhase').show();
$('#div_EditDelete').show();
}
$('#text_Status').text(sStatus);
$('#text_Status').addClass(cStatus);
$('#buttonVue').hide();
$('#buttonRes').show();
$('#buttonPrt').show();
$('#div_Table').show();
} // End of date check
}); // End of buttonVue click
Note that the dataTables in included inside a button View click event.
All of this works great... BUT the following code to select a row never fires.
- // Table row clicked
$('#div_Table tbody tr').click(function( e ) {
alert('Row clicked');
if ( $(this).hasClass('row_selected') ) {
$(this).removeClass('row_selected');
} else {
oTable.$('tr.row_selected').removeClass('row_selected');
$(this).addClass('row_selected');
}
});
This is the css for the row_selected
- .row_selected {
background-color:#f0f0f0;
}
Is there any reason that the click event for the row will not even fire?
TIA for any assistance.
jdadwilson