jQuery DataTable - 动态初始化后,在hide / show上启用/禁用列过滤

时间:2015-10-28 22:52:42

标签: jquery datatables

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

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

这是我的代码:

$('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
});

1 个答案:

答案 0 :(得分:3)

  

<强>解

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

$('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);
});    
  

<强>样本

请参阅this jsFiddle以获取代码和演示。