在数据表中初始化(初始化完成)后禁用排序列
Posted
技术标签:
【中文标题】在数据表中初始化(初始化完成)后禁用排序列【英文标题】:Disable Ordering Columns after initialization (init complete) in datatables 【发布时间】:2015-02-17 02:29:45 【问题描述】:绘制数据表后,我将禁用用户订购的可能性。 我有一个数据表,我会订购数据并消除用户手动订购数据的可能性。 我该怎么做?
我使用了以下代码:
table = $('#tbl-1').DataTable(
"info": false,
"searching": true,
"paging": false,
"iDisplayLength": 25,
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "Tutti"]],
"language": "url": "include/it_IT.txt",
"order": [[1,"desc"]],
//"ordering": false,
//"orderFixed": "pre": [ 1, "desc" ],
"fnInitComplete": function(oSettings, json)
//alert( 'DataTables has finished its initialisation.' );
this.fnFilter("<?php echo $_POST['search'];?>");
,
).on('init.dt', function (e, settings, data)
wrappa(); //after custom function
);
【问题讨论】:
http://www.datatables.net/forums/discussion/7377/disable-all-sorting-after-init 我只是看到它,但在我的网站上不起作用 解决一些潜在的混淆。如果您希望在数据表初始化后禁用(例如服务器端排序的)表的自动排序,但保持启用排序功能以供有意使用,see here。如果您想完全禁用排序,请参阅下面的答案。 【参考方案1】:旧帖子,但仍未由 dt api 处理。如果要暂时禁用排序,则删除事件将不起作用。而是使用 jquery 在每个 th 上添加和删除一个类,并在此类中指定“pointer-events: none”。
【讨论】:
【参考方案2】:由于API没有办法做到这一点,我建议以下方法
首先声明你的表
var table = $('#myTable').DataTable();
重新初始化您的数据表以禁用排序
//Destroy your table before
table.destroy();
$('#myTable').dataTable(
"ordering": false
);
参考: https://datatables.net/reference/option/ordering
【讨论】:
这是不正确的,因为我需要第一次订购,并且只有在订购后我必须禁用.. 如果你在 OP 想要阻止用户排序的列上设置ordering : false
,他也会失去自己的排序,例如"order": [[1,"desc"]]
。
这将完全禁用排序以上是关于在数据表中初始化(初始化完成)后禁用排序列的主要内容,如果未能解决你的问题,请参考以下文章