切换 jquery DataTables 列是否可排序
toggle whether or not a jquery DataTables column is sortable
我已经看到很多关于如何使用 sortable 或 not-sortable 的列初始化 DataTable
的信息。但是,我无法弄清楚 disable/enable 在 列上排序 之后 table 已经初始化。我找到了一个非常 hacky 的方法来做到这一点,但是有没有正确的方法来做到这一点 API?
我的攻略是针对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 版本
如果您的列由 JSON 对象定义,您可以将 bSortable 设置为 true 或 false。我只是在服务器上动态地进行了更改,但我认为没有什么可以阻止您在客户端上进行更改并重新绘制 table.
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});
我已经看到很多关于如何使用 sortable 或 not-sortable 的列初始化 DataTable
的信息。但是,我无法弄清楚 disable/enable 在 列上排序 之后 table 已经初始化。我找到了一个非常 hacky 的方法来做到这一点,但是有没有正确的方法来做到这一点 API?
我的攻略是针对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 版本
如果您的列由 JSON 对象定义,您可以将 bSortable 设置为 true 或 false。我只是在服务器上动态地进行了更改,但我认为没有什么可以阻止您在客户端上进行更改并重新绘制 table.
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});