HTML表格绑定数据时Maintenance Point列出现NaN值问题求助
HTML表格绑定数据时Maintenance Point列出现NaN值问题求助
我在实现数据计算展示的逻辑时遇到了问题:表格中的Maintenance Point列显示的是NaN,但这里应该显示正确内容或者为空,麻烦帮我排查下这个列的处理哪里出错了?
相关实现代码
function displaySignOffSheetFTTX(ReportType, Month, DataList) { var _reportType = (ReportType == 'ALL') ? "PAN INDIA" : ReportType; var _month = Month; var table = $('#grdCicleDatatable'); $(table).empty(); var thead = ""; var datalist = JSON.parse(DataList); thead = "<thead><tr><th rowspan='2' class='text-left'>Sr.No</th><th rowspan='2' class='text-left'>Maintenance Point</th><th align='center' colspan='5'>Billable Scope Approved by CMM</th></tr><tr><th class='text-left'>UG Scope (KM)</th><th class='text-left'>Aerial Scope (KM)</th><th class='text-left'>MDU Scope (KM)</th><th class='text-left'>Aerial + MDU Scope (KM)</th><th class='text-left'>Total Scope (KM)</th></tr></thead>"; var tbody = "<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 = "<tr><td>" + key + " </td><td>" + val.ITEM + "</td><td>" + val.UG_LENGTH + "</td><td>" + val.AR_LENGTH + "</td><td>" + val.MDU_LENGTH + "</td><td>" + AerialMDUTotal + "</td><td>" + UGAerialMDUTotal + "</td></tr>"; table.append(tr); }); table.append('</tbody>'); } var footer = "<tfoot><th colspan='1' style='text-align:center'><b>Total:</b></th><th class='text-center'></th><th class='text-center'></th><th class='text-center'></th><th class='text-center'></th><th class='text-center'></th><th class='text-center'></th></tfoot>"; table.append(footer); oTable = $(table).dataTable({ dom: 'tp', "dom": 'tp<"bottom"B><"clear">', "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"); }
问题截图

备注:内容来源于stack exchange,提问作者HEEN
相关产品推荐
相关产品推荐

