数据表'stateSave:true',导致表崩溃,有人知道为什么吗?

问题描述

我正在使用Datatable JS替换表,一切正常,直到我添加stateSave:true参数,下面是我的代码,没有stateSave,这将正确显示下面显示的表:

enter image description here

var table = $('#example').DataTable({
        dom: 'Bfrtip',colReorder: true,"bPaginate": false,buttons: [
            {
                extend: 'copy',text: '<a class="waves-effect waves-light btn"><i class="material-icons left">content_copy</i>copy Current Page</a>',exportOptions: {
                    columns: ':visible'
                }
            },{
                extend: 'csv',text: '<a class="waves-effect waves-light btn"><i class="material-icons left">list</i>Export Current Page as CSV</a>',exportOptions: {
                    columns: ':visible'
                },filename: function () {
                    var today = new Date();
                    var dd = String(today.getDate()).padStart(2,'0');
                    var mm = String(today.getMonth() + 1).padStart(2,'0'); //January is 0!
                    var yyyy = today.getFullYear();

                    today = dd + '.' + mm + '.' + yyyy;
                    return 'AZ-CustomTransactionReport: ' + today;
                },},{
                extend: 'pdfHtml5',text: '<a class="waves-effect waves-light btn"><i class="material-icons left">picture_as_pdf</i>Export Current Page as PDF</a>',orientation: 'landscape',pageSize: 'A2',{
                extend: 'print',text: '<a class="waves-effect waves-light btn"><i class="material-icons left">print</i>Print Current Page</a>',messageBottom: null
            }
        ],"columnDefs": [
            {
                "visible": false,"searchable": false,"targets": [{% for i in transactionCheckBoxes %}{% if i.value == False %} {% if forloop.counter0 == 84 %}{% else %}{{forloop.counter0}}{% endif %},{% endif %}{% endfor %}],className: 'hidden',],});

在上面的方法工作正常的情况下,下面的方法加载了一个已损坏并被涂黑的表,该表数据与其lef重叠:

enter image description here

var table = $('#example').DataTable({
        dom: 'Bfrtip',stateSave: true,/*ADDED LINE*********/
        "bPaginate": false,});

我正在使用以下库:

<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>

<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.flash.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.html5.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.print.min.js"></script>

<script src="https://cdn.datatables.net/colreorder/1.5.2/js/dataTables.colReorder.min.js"></script>

解决方法

好的,我不确定为什么,但是添加:

stateDuration:-1,

似乎可以解决问题,启用本地存储可修复此 bug 如果有人能解释为什么会这样,那就太好了! 希望这对遇到同样问题的人有所帮助