selectRow is not updating seleted rows
selectRow is not updating seleted rows
I am using DataTables V1.10.19 and for some reason when I select a row, 1 row selected displays ok, but if I click another row, it deletes the message. Curiously, if I change to 'selectRow': false, then it displays ok. I would be grateful if someone could check my code and help me correct error. Thanks
$(function() {
tableni = $('#nirqst').DataTable({
"fnDrawCallback": function() {
$("#nirqst_info").append("<input style='float:left; margin-right: 17px;' type='submit' id='rowClk' value='Action'>");
},
'DrawCallback': function() {
$('input[type="checkbox"]').iCheck({
checkboxClass: 'icheckbox_flat-flat'
});
},
"ajax": "/lsorg/admin/dataNI.php",
"bPaginate": true,
"bProcessing": true,
"bserverSide": false,
"pageLength": 10,
"autoWidth": false,
"ordering": true,
"bVisible": false,
"info": true,
"sAjaxDataProp": "",
"aoColumns": [
{ data: 'id' },
// { data: 'idnumber' },
{ data: null, 'width': '20' },
{ data: 'service', 'width': '40' },
{ data: 'activity' },
{ data: 'dept' },
{ data: 'company' },
{ data: 'address', 'width': '160' },
{ data: 'user' },
{ data: 'item' },
{ data: 'ddate' },
{ data: 'date' },
{ data: null, 'width': '110' }
],
"order": [[
10, "desc"
]],
"columnDefs": [
// {
// targets: 1,
//
// },
{
targets: 11,
render: function(data, type, row, meta) {
if (type === 'display') {
data = '<i id="editni" title="Edit the requested record" class="fa fa-edit fa-2x editni"></i>'
+ '<i title="Action the requested record" class="fas fa-at fa-2x addni"></i>'
+ '<i title="Delete the requested record" class="fas fa-trash-alt fa-2x delni"></i>';
}
return data;
}
},
{
"orderable": false,
"targets": [0, 11]
},
{
className: "hide_id",
"targets": [0]
},
{
'targets': 1,
'checkboxes': {
'selectRow': true,
'selectCallback': function(nodes, selected) {
$('input[type="checkbox"]', nodes).iCheck('update');
},
'selectAllCallback': function(nodes, selected, indeterminate) {
$('input[type="checkbox"]', nodes).iCheck('update');
}
}
}
],
'select': {
'style': 'multi'
},
// 'order': [[1, 'asc']],
dom: 'lBfrtip',
buttons: [{
extend: 'print',
exportOptions: {
columns: [3, 4, 5, 6, 7, 8, 9, 10]
},
title: '<div style="margin-top: 20px; margin-left: -4px;"><img src="/lsorg/admin/reports/images/logistor-logo-black.png" width="500px"; height="95px";></div>' + '<span style="color: grey;">New Intake Report</span>',
messageTop: '<span style="color: grey;">This report was prepared for ' + usrname + ' on ' + '</span>' + '<span style="color: red;">' + rptDate + '</span>',
autoPrint: true,
customize: function(win) {
// $(win.document.body).find('table').css({'background': 'red !important', 'font-size': '24px' });
$(win.document.body).find('thead').css({
'background': '#000',
'font-size': '14px',
'max-height': '30px'
});
$(win.document.body).find('tr:nth-child(odd) td').each(function(index) {
$(this).css({
'background-color': '#f7f7f7',
color: 'black',
padding: '12px 10px',
'margin-left': '10px !important'
});
});
$(win.document.body).find('tr:nth-child(even) td').each(function(index) {
$(this).css({
'background-color': '#fff',
color: 'black',
padding: '12px 10px',
'margin-left': '10px !important'
});
});
$(win.document.body).find('h1').css({
'text-align': 'left',
color: 'black',
'margin-left': '36px',
'margin-bottom': '7px',
'font-size': '28px'
});
}
}, 'copy', 'pdf', 'excel', 'csv']
});
$("#nirqst_wrapper > .dt-buttons").appendTo("#buttons");
// Handle form submission event
$('#nirqst').on('submit', function(e) {
var form = this;
var rows_selected = tableni.column(0).checkboxes.selected();
// Iterate over all selected checkboxes
$.each(rows_selected, function(index, rowId) {
// Create a hidden element
$(form).append($('<input>').attr('type', 'hidden').attr('name', 'id[]').val(rowId));
});
});
// Handle iCheck change event for "select all" control
$(tableni.table().container()).on('ifChanged', '.dt-checkboxes-select-all input[type="checkbox"]', function(event) {
var col = tableni.column($(this).closest('th'));
col.checkboxes.select(this.checked);
});
// Handle iCheck change event for checkboxes in table body
$(tableni.table().container()).on('ifChanged', '.dt-checkboxes', function(event) {
var cell = tableni.cell($(this).closest('td'));
cell.checkboxes.select(this.checked);
});
});
This discussion has been closed.
Answers
Nothing obvious stands out. Looks like you are using the Gyrocode Checkboxes Extension -
selectRowtrue. Without seeing the problem it would be hard to offer suggestions.You may want to use the
DiscussorReport a Bugbuttons on the Gyrocode site to see if there are any known issues.What happens if you leave
selectRowtrue but remove theselectCallbackandselectAllCallbackcallbacks?Kevin
Hi Thanks for reply. It is still the same. I shall report on the Gynocode site a suggested. One other thing. I am a fairly new user to datatables and am looking for example/tutorial on how to get row values and add to array for server side processing from checkbox. Thanks