javascript - 切换 jquery DataTables 列是否可排序

标签 javascript jquery datatables

我已经看到了很多关于如何使用可排序或不可排序的某些列来初始化 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)非常适合将其关闭并保持关闭状态,但我需要能够多次切换它。我不喜欢我的解决方案,因为

  1. $._datajQuery 内部组件,不应依赖,
  2. 似乎应该有一种简单的方法可以使用标准 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/

相关文章:

带有 strip 和悬停的 Jquery 数据表

javascript - 为什么我无法使用 JavaScript 取消选中复选框?

javascript - 如果 django 表单提交失败则运行 javascript

JQuery 获取列表中的所有项目

javascript - 不要在缩放时触发自定义图 block 叠加

javascript - jquery 数据表在 Firefox 中不起作用

javascript - 如何使用 javascript 从 cookie 创建和读取值?

javascript - 尝试使用 Ajax 获取图像时出现访问控制源问题

javascript - 如何将搜索结果显示为 "Showing 1-10 of 300"

javascript - 在按钮集合中添加自定义按钮