jQuery DataTable - 动态初始化后隐藏/显示启用/禁用列过滤

标签 jquery datatables

我在 Stack Overflow 上的第一篇文章。 :)

我有一个 jQuery 数据表,带有一个带有复选框的自定义下拉列表“隐藏/显示列”。这些工作完美。但是当我隐藏一列时,我也希望它不可搜索。当我再次显示它时,我希望它可以再次被搜索。这可能吗?

这是我的代码:

$('input[type="checkbox"]', $("#myHideShowDropdown")).change(function () {
    // data-column is just the number of the column
    var column = oTable.column($(this).attr("data-column")); 
    column.visible(!column.visible()); // This works

    // Here I want to to something like 
    // column.searchable(!column.searchable()) 
    // but there is no such thing
});

最佳答案

SOLUTION

要切换列过滤和可见性,请使用以下代码:

$('input[type="checkbox"]', $("#myHideShowDropdown")).change(function () {
   var colIdx = $(this).attr("data-column");
   var column = oTable.column(colIdx);
   var isVisible = column.visible();

   column.visible(!isVisible); 
   oTable.settings()[0].aoColumns[colIdx].bSearchable = !isVisible;

   oTable.rows().invalidate().draw(false);
});    

DEMO

参见this jsFiddle用于代码和演示。

关于jQuery DataTable - 动态初始化后隐藏/显示启用/禁用列过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402959/

相关文章:

javascript - 在 jQuery DataTables 中使用 "later"变量

javascript - 如何使用 jQuery 在同一个父 div 中有效地选择元素

javascript - 在 HTML5 拖放中,仅 Dragstart 会触发

javascript - 在文档加载和函数调用时选择不同的行

javascript - DataTables 更改所有页面上的复选框

datatables - 将新数据加载到 Jquery DataTables 中

javascript - 默认关闭 Div

javascript - 在 jQuery 中更改 TD 元素

jquery - 如何使用jquery从数组中删除空值

jquery - datatables 1.10 add.row() 在 ajax 响应中不起作用