我试图解决问题,但失败了。问题是,当我调用主要初始化数据库的filltblServicesReport函数时,它第一次起作用,但是当我再次调用它时,它不会加载新数据。尽管我正在销毁它,但事实并非如此。
我正在通过按钮的click事件加载它。
function filltblServicesReport() {
$('tfoot td#tdTotal').text("");
var url = '@Url.Action("DetailedServiceReport")';
var data = { FromDate: $("#FromDate").val(), ToDate: $("#ToDate").val() }
$.post(url, data, function (response) {
if (response.ReturnStatusJSON == true) {
$("#tbodytblServicesReport").html("");
var i = 1;
$.each(response.lstDetailedServicesReturned, function (i, val) {
$("#tblServicesReport").append($('<tr>').append($('<td>').html(i))
.append($('<td>').html((val.EntryDateTime === null || val.EntryDateTime === "") ? "N/A" : formatJSONDate(val.EntryDateTime)))
.append($('<td>').html(val.InvoiceNo))
.append($('<td>').html(val.CustomerName))
.append($('<td>').html(val.VehicleRegNo))
.append($('<td>').html(val.ServiceName))
.append($('<td>').html(val.ServicePrice))
.append($('<td>').html(val.Commission))
)
i++;
$('tfoot td#tdTotal').text(val.TotalCost);
$('tfoot td#tdTotalCommission').text(val.TotalCommission);
})
$('#tblServicesReport').show();
// $('#tblServicesReport').dataTable().fnDestroy();
$('#tblServicesReport').DataTable({
destroy: true,
bPaginate: false,
dom: 'Bfrtip',
buttons: [
'copyHtml5',
'excelHtml5',
'csvHtml5',
{
extend: 'pdfHtml5',
footer: true,
title: 'Services Report (' + $('#FromDate').val() + ' - ' + $('#ToDate').val() + ')',
customize: function (doc) {
doc.styles.title = {
color: 'gray',
fontSize: '15',
alignment: 'center'
}
doc.content[1].table.widths =
Array(doc.content[1].table.body[0].length + 1).join('*').split('');
doc.styles.tableHeader.fontSize = 10;
doc.styles.tableHeader.alignment = 'left';
doc.styles.tableHeader.color = 'white'
}
},
{
extend: 'print',
footer: true
//title: 'Sales Report'
}
]
});
}
else {
swal("Sorry !", "No Record Found", "error");
$("#tbodytblServicesReport").html("");
}
});
}
答案 0 :(得分:0)
$('#tblServicesReport').DataTable.ajax.url.load
解决了。您可以对数据表使用.ajax.url.load来重新初始化它。