Javascript ThymileAF:提交后将选定行保留在数据表中

Javascript ThymileAF:提交后将选定行保留在数据表中,javascript,jquery,datatable,datatables,thymeleaf,Javascript,Jquery,Datatable,Datatables,Thymeleaf,我有一个带Datatable的ThymileAF模板(1.10.15)。我已生成此代码,以在提交后保留所选行,但它不起作用,我不这样做;没有任何javascript错误 <script th:inline="javascript"> /*<![CDATA[*/ $(document).ready(function() { var table = $('#deviceEventTable').DataTable( { order: [[ 0,

我有一个带Datatable的ThymileAF模板(1.10.15)。我已生成此代码,以在提交后保留所选行,但它不起作用,我不这样做;没有任何javascript错误

<script th:inline="javascript">
/*<![CDATA[*/   

$(document).ready(function() {


    var table = $('#deviceEventTable').DataTable( {
        order: [[ 0, "desc" ]],
        select: true,
        bLengthChange: false,
        stateSave: true,
        pageLength: 20,
        initComplete: function() {
            var api = this.api();

            if (localStorage.getItem( 'DataTables_selected' )!=null && localStorage.getItem( 'DataTables_selected' ) != 'undefined') {          
                var selected = localStorage.getItem( 'DataTables_selected' ).split(',');                    
                selected.forEach(function(s) {
                api.row(s).select();
                })
            }

          } 
    });


    table.on('select.dt deselect.dt', function() {
          localStorage.setItem( 'DataTables_selected', table.rows( { selected: true }).toArray() )   
        })      
} );

/*]]>*/
</script>
对于这一个:

$('#deviceEventTable tbody').on('click', 'td', function () {        
        $(this).closest("tr").toggleClass('selected');
    });

但是在提交时,它会使所选行消失,您可以使用一个变量并在字符串中覆盖它

var selected = localStorage.getItem( 'DataTables_selected' ).split(',');
var selected = '0';
只需删除
var selected='0'其他一切看起来都正常:)

UPD

使用旧的dataTable()构造函数,它返回一个jQuery对象。 在DataTable()constructur上更改它,它的返回API对象具有对行的nedded访问权限

    var table = $('#deviceEventTable').DataTable( { 
        ...
    });
UPD2 使用您的代码的工作示例

相同的结果-(包括什么版本的select.css和select.js?
    var table = $('#deviceEventTable').DataTable( { 
        ...
    });