为什么jquery数据表从不重新初始化?

时间:2018-08-01 05:49:29

标签: javascript html ajax asp.net-mvc datatables

我试图解决问题,但失败了。问题是,当我调用主要初始化数据库的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("");

                }
            });
        }

1 个答案:

答案 0 :(得分:0)

$('#tblServicesReport').DataTable.ajax.url.load

解决了。您可以对数据表使用.ajax.url.load来重新初始化它。