Javascript ThymileAF:提交后将选定行保留在数据表中
我有一个带Datatable的ThymileAF模板(1.10.15)。我已生成此代码,以在提交后保留所选行,但它不起作用,我不这样做;没有任何javascript错误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,
<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( {
...
});