Reputation: 4737
I have a jquery datatable
which brings me the data in a table. Now each row has a update
button. Onclick of which a tab will open with relevant data fill in it. So for getting the current row click values I tried my code like this
function getDataForSMPS() {
var table = $('#grdSMPSRCOM').DataTable();
$('#example tbody').on('click', 'div', function () {
console.log(table.row(this).data());
});
}
But was unable to get the data.
Here is my full jquery datatable code
var details = [];
for (var i = 0, len = retrievedParsedValue.length; i < len; i++) {
var result = retrievedParsedValue[i];
var buttonColumn = "<b><div style='cursor: pointer;' onClick=" + 'getDataForSMPS();' + ">Update</div></b>";
details.push([retrievedParsedValue[i]['RJ_FACILITY_ID'], retrievedParsedValue[i]['IID'], retrievedParsedValue[i]['SMPS_AVAILABLE'], retrievedParsedValue[i]['NO_OF_SMPS_ONSITE'], retrievedParsedValue[i]['SMPS_MAKE'], retrievedParsedValue[i]['SMPS_CAPACITY'], retrievedParsedValue[i]['CONTROLLER_MODEL'], retrievedParsedValue[i]['RECT_MODULE_MODEL'], retrievedParsedValue[i]['HEALTHY_RECTIFIER_COUNT'], retrievedParsedValue[i]['BACKPLANE_RECTIFIER_SLOT'], retrievedParsedValue[i]['RECT_CAPACITY'], retrievedParsedValue[i]['SMPS_STATUS'], retrievedParsedValue[i]['NO_OF_FAULTY_MODULES'], retrievedParsedValue[i]['DC_LOAD'], retrievedParsedValue[i]['SMPS_OTHER_REMARKS'], buttonColumn]);
}
$('#grdSMPSRCOM').DataTable({
destroy: true,
data: details,
"scrollX": true,
columns: [
{ title: "RJ_FACILITY_ID" },
{ title: "IID" },
{ title: "SMPS_AVAILABLE" },
{ title: "NO_OF_SMPS_ONSITE" },
{ title: "SMPS_MAKE" },
{ title: "SMPS_CAPACITY" },
{ title: "CONTROLLER_MODEL" },
{ title: "RECT_MODULE_MODEL" },
{ title: "HEALTHY_RECTIFIER_COUNT" },
{ title: "BACKPLANE_RECTIFIER_SLOT" },
{ title: "RECT_CAPACITY" },
{ title: "SMPS_STATUS" },
{ title: "NO_OF_FAULTY_MODULES" },
{ title: "DC_LOAD" },
{ title: "SMPS_OTHER_REMARKS" },
{ title: "Update Data" }
],
"bDestroy": true
});
Upvotes: 0
Views: 295
Reputation: 320
You have used #example instead of grdSMPSRCOM,
try this,
var details = [];
for (var i = 0, len = retrievedParsedValue.length; i < len; i++) {
var result = retrievedParsedValue[i];
var buttonColumn = "<div class='edit_btn' style='cursor: pointer;' >Update</div>";
details.push([retrievedParsedValue[i]['RJ_FACILITY_ID'], retrievedParsedValue[i]['IID'], retrievedParsedValue[i]['SMPS_AVAILABLE'], retrievedParsedValue[i]['NO_OF_SMPS_ONSITE'], retrievedParsedValue[i]['SMPS_MAKE'], retrievedParsedValue[i]['SMPS_CAPACITY'], retrievedParsedValue[i]['CONTROLLER_MODEL'], retrievedParsedValue[i]['RECT_MODULE_MODEL'], retrievedParsedValue[i]['HEALTHY_RECTIFIER_COUNT'], retrievedParsedValue[i]['BACKPLANE_RECTIFIER_SLOT'], retrievedParsedValue[i]['RECT_CAPACITY'], retrievedParsedValue[i]['SMPS_STATUS'], retrievedParsedValue[i]['NO_OF_FAULTY_MODULES'], retrievedParsedValue[i]['DC_LOAD'], retrievedParsedValue[i]['SMPS_OTHER_REMARKS'] + buttonColumn]);
}
$('#grdSMPSRCOM').DataTable({
destroy: true,
data: details,
"scrollX": true,
columns: [
.....
],
"bDestroy": true
});
var table = $('#grdSMPSRCOM').DataTable();
$('#grdSMPSRCOM').on('click', 'tbody .edit_btn', function () {
var data_row = table.row($(this).closest('tr')).data();
console.log(data_row);
} );
For your reference, http://jsfiddle.net/f4bppa43/1276/
Upvotes: 1