Anonymous
Использование jQuery для привязки данных в таблице HTML Получение значений NAN
Сообщение
Anonymous » 13 мар 2025, 09:19
Я реализовал приведенную ниже логику для отображения расчетов с данными. Таким образом, при отображении данных в точке обслуживания столбец я получаю значения как NAN . Но не должно быть никаких значений. Что не так в столбце ниже?
Код: Выделить всё
function displaySignOffSheetFTTX(ReportType, Month, DataList) {[b] var _reportType = (ReportType == 'ALL') ? "PAN INDIA" : ReportType;
var _month = Month;
var table = $('#grdCicleDatatable');
$(table).empty();
var thead = "";
var datalist = JSON.parse(DataList);
thead = "Sr.NoMaintenance PointBillable Scope Approved by CMMUG Scope (KM)Aerial Scope (KM)MDU Scope (KM)Aerial + MDU Scope (KM)Total Scope (KM)";
var tbody = "";
table.append(thead);
table.append(tbody);
if (datalist != null && datalist.length > 0) {
var AerialMDUTotal = 0;
var UGAerialMDUTotal = 0;
$.each(datalist, function (key, val) {
key++;
val.UG_LENGTH = val.UG_LENGTH == null ? 0 : parseFloat(val.UG_LENGTH);
val.UG_LENGTH = val.UG_LENGTH.toFixed(2);
val.AR_LENGTH = val.AR_LENGTH == null ? 0 : parseFloat(val.AR_LENGTH);
val.AR_LENGTH = val.AR_LENGTH.toFixed(2);
val.MDU_LENGTH = val.MDU_LENGTH == null ? 0 : parseFloat(val.MDU_LENGTH);
val.MDU_LENGTH = val.MDU_LENGTH.toFixed(2);
AerialMDUTotal = parseFloat(val.AR_LENGTH) + parseFloat(val.MDU_LENGTH);
UGAerialMDUTotal = parseFloat(val.UG_LENGTH) + AerialMDUTotal;
UGAerialMDUTotal = UGAerialMDUTotal.toFixed(2);
var tr = "" + key + " " + val.ITEM + "" + val.UG_LENGTH + "" + val.AR_LENGTH + "" + val.MDU_LENGTH + "" + AerialMDUTotal + "" + UGAerialMDUTotal + "";
table.append(tr);
});
table.append('');
}
var footer = "Total:[/b]";
table.append(footer);
oTable = $(table).dataTable({
dom: 'tp',
"dom": 'tp',
"searching": false,
responsive: true,
"autoWidth": true,
"bDestroy": true,
"pageLength": 6,
paging: false,
"columnDefs": [
{ "width": "7.7%", "targets": 0 },
{ "width": "7.7%", "targets": 1 },
{ "width": "7.7%", "targets": 2 },
{ "width": "7.7%", "targets": 3 },
{ "width": "7.7%", "targets": 4 },
{ "width": "7.7%", "targets": 5 },
{ "width": "7.7%", "targets": 6 }
],
buttons: [
{
"extend": "excelHtml5", "text": "Export to Excel", "filename": _reportType + "_SignOffSheet_" + _month,
title: 'Sign Of Sheet of ' + _reportType + ' Circle for ' + _month + ' Month',
exportOptions: {
columns: ':visible',
format: {
header: function (data, columnindex, trDOM, node) {
return GetColumnPrefixFTTX(columnindex) + data;
}
}
}
}
],
"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);
};
var FTTXUGTotal = api.column(1).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2);
var FTTXARTotal = api.column(2).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2);
var FTTXMDUTotal = api.column(3).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2);
var TotFTTXUGTotal = api.column(4).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2);
var TotFTTXARTotal = api.column(5).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2);
var TotFTTXMDUTotal = api.column(6).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2);
$(api.column(0).footer()).html('Total');
$(api.column(1).footer()).html(FTTXUGTotal);
$(api.column(2).footer()).html(FTTXARTotal);
$(api.column(3).footer()).html(FTTXMDUTotal);
$(api.column(4).footer()).html(TotFTTXUGTotal);
$(api.column(5).footer()).html(TotFTTXARTotal);
$(api.column(6).footer()).html(TotFTTXMDUTotal);
},
initComplete: function () {
var btns = $('.dt-button');
btns.addClass('btn btn-danger button');
btns.removeClass('dt-button');
}
});
$('.buttons-excel').css("display", "none");
}
scenshot:
Подробнее здесь:
https://stackoverflow.com/questions/795 ... nan-values
1741846756
Anonymous
Я реализовал приведенную ниже логику для отображения расчетов с данными. Таким образом, при отображении данных в точке обслуживания столбец я получаю значения как NAN . Но не должно быть никаких значений. Что не так в столбце ниже?[code]function displaySignOffSheetFTTX(ReportType, Month, DataList) {[b] var _reportType = (ReportType == 'ALL') ? "PAN INDIA" : ReportType; var _month = Month; var table = $('#grdCicleDatatable'); $(table).empty(); var thead = ""; var datalist = JSON.parse(DataList); thead = "Sr.NoMaintenance PointBillable Scope Approved by CMMUG Scope (KM)Aerial Scope (KM)MDU Scope (KM)Aerial + MDU Scope (KM)Total Scope (KM)"; var tbody = ""; table.append(thead); table.append(tbody); if (datalist != null && datalist.length > 0) { var AerialMDUTotal = 0; var UGAerialMDUTotal = 0; $.each(datalist, function (key, val) { key++; val.UG_LENGTH = val.UG_LENGTH == null ? 0 : parseFloat(val.UG_LENGTH); val.UG_LENGTH = val.UG_LENGTH.toFixed(2); val.AR_LENGTH = val.AR_LENGTH == null ? 0 : parseFloat(val.AR_LENGTH); val.AR_LENGTH = val.AR_LENGTH.toFixed(2); val.MDU_LENGTH = val.MDU_LENGTH == null ? 0 : parseFloat(val.MDU_LENGTH); val.MDU_LENGTH = val.MDU_LENGTH.toFixed(2); AerialMDUTotal = parseFloat(val.AR_LENGTH) + parseFloat(val.MDU_LENGTH); UGAerialMDUTotal = parseFloat(val.UG_LENGTH) + AerialMDUTotal; UGAerialMDUTotal = UGAerialMDUTotal.toFixed(2); var tr = "" + key + " " + val.ITEM + "" + val.UG_LENGTH + "" + val.AR_LENGTH + "" + val.MDU_LENGTH + "" + AerialMDUTotal + "" + UGAerialMDUTotal + ""; table.append(tr); }); table.append(''); } var footer = "Total:[/b]"; table.append(footer); oTable = $(table).dataTable({ dom: 'tp', "dom": 'tp', "searching": false, responsive: true, "autoWidth": true, "bDestroy": true, "pageLength": 6, paging: false, "columnDefs": [ { "width": "7.7%", "targets": 0 }, { "width": "7.7%", "targets": 1 }, { "width": "7.7%", "targets": 2 }, { "width": "7.7%", "targets": 3 }, { "width": "7.7%", "targets": 4 }, { "width": "7.7%", "targets": 5 }, { "width": "7.7%", "targets": 6 } ], buttons: [ { "extend": "excelHtml5", "text": "Export to Excel", "filename": _reportType + "_SignOffSheet_" + _month, title: 'Sign Of Sheet of ' + _reportType + ' Circle for ' + _month + ' Month', exportOptions: { columns: ':visible', format: { header: function (data, columnindex, trDOM, node) { return GetColumnPrefixFTTX(columnindex) + data; } } } } ], "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); }; var FTTXUGTotal = api.column(1).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2); var FTTXARTotal = api.column(2).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2); var FTTXMDUTotal = api.column(3).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2); var TotFTTXUGTotal = api.column(4).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2); var TotFTTXARTotal = api.column(5).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2); var TotFTTXMDUTotal = api.column(6).data().reduce(function (a, b) { return intVal(a) + intVal(b); }, 0).toFixed(2); $(api.column(0).footer()).html('Total'); $(api.column(1).footer()).html(FTTXUGTotal); $(api.column(2).footer()).html(FTTXARTotal); $(api.column(3).footer()).html(FTTXMDUTotal); $(api.column(4).footer()).html(TotFTTXUGTotal); $(api.column(5).footer()).html(TotFTTXARTotal); $(api.column(6).footer()).html(TotFTTXMDUTotal); }, initComplete: function () { var btns = $('.dt-button'); btns.addClass('btn btn-danger button'); btns.removeClass('dt-button'); } }); $('.buttons-excel').css("display", "none"); }[/code] scenshot: Подробнее здесь: [url]https://stackoverflow.com/questions/79505493/using-jquery-for-binding-data-in-html-table-getting-nan-values[/url]