我已经看到很多关于如何使用可排序或不可排序的列初始化DataTable
的信息。但是,在表初始化之后,我无法确定在列上禁用/启用排序。我发现了一种非常糟糕的方法,但有没有一种适当的方法来使用API?
我的hack是针对th,复制click事件,解除绑定,然后重新绑定它,就像这样
var _click=$._data($('#myTH')[0],"events").click[0];
$('#myTH').unbind("click");
//do some stuff
//reattach
$('#myTH').bind("click",_click);
一个简单的解除绑定非常适合关闭它并将其关闭,但我需要能够多次切换它。我不喜欢我的解决方案,因为
$._data
是一个jQuery
内部,不应该依赖DataTables
API 我使用的是版本1.10
答案 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});