切换jquery DataTables列是否可排序

时间:2015-03-03 21:58:32

标签: javascript jquery datatables jquery-datatables

我已经看到很多关于如何使用可排序或不可排序的列初始化DataTable的信息。但是,在表初始化之后,我无法确定在列上禁用/启用排序。我发现了一种非常糟糕的方法,但有没有一种适当的方法来使用API​​?

我的hack是针对th,复制click事件,解除绑定,然后重新绑定它,就像这样

var _click=$._data($('#myTH')[0],"events").click[0];
$('#myTH').unbind("click");
//do some stuff
//reattach
$('#myTH').bind("click",_click);

一个简单的解除绑定非常适合关闭它并将其关闭,但我需要能够多次切换它。我不喜欢我的解决方案,因为

  1. $._data是一个jQuery内部,不应该依赖
  2. 使用标准DataTables API
  3. 似乎应该有一种简单的方法

    我使用的是版本1.10

1 个答案:

答案 0 :(得分:1)

如果您的列由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});