我已经看到了很多关于如何使用可排序或不可排序的某些列来初始化 DataTable
的信息。但是,我无法弄清楚在表初始化后对列禁用/启用排序。我发现了一种非常 hacky 的方法来做到这一点,但是有没有正确的方法来使用 API 来做到这一点?
我的技巧是瞄准th,复制点击事件,取消绑定(bind)它,然后重新绑定(bind)它,就像这样
var _click=$._data($('#myTH')[0],"events").click[0];
$('#myTH').unbind("click");
//do some stuff
//reattach
$('#myTH').bind("click",_click);
简单的解除绑定(bind)非常适合将其关闭并保持关闭状态,但我需要能够多次切换它。我不喜欢我的解决方案,因为
$._data
是jQuery
内部组件,不应依赖,- 似乎应该有一种简单的方法可以使用标准
DataTables
API 来实现此目的
我使用的是1.10版本
最佳答案
如果您的列是由 JSON 对象定义的,您可以将 bSortable 设置为 true 或 false。我只是在服务器上动态进行了更改,但我认为没有什么可以阻止您在客户端上执行此操作并重新绘制表格。
JSON 格式的列看起来像
var columns = [{"bSortable":false,"sWidth":"80px","sTitle":"Fancy Column 1 Title","mData":"Id"},{"bSortable":false,"sWidth":"80px","sTitle":"Fancy Column 2 Title","mData":"name"}]
table = $j('#datatable').dataTable({
'sPaginationType': 'custom',
'aoColumns': columns});
关于javascript - 切换 jquery DataTables 列是否可排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28842747/