问题描述
我正在使用Datatable JS替换表,一切正常,直到我添加stateSave:true参数,下面是我的代码,没有stateSave,这将正确显示下面显示的表:
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重叠:
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 如果有人能解释为什么会这样,那就太好了! 希望这对遇到同样问题的人有所帮助