如何在 Jquery Datatables 中根据条件隐藏列?

Posted

技术标签:

【中文标题】如何在 Jquery Datatables 中根据条件隐藏列?【英文标题】:How to hide column based on condition in Jquery Datatables? 【发布时间】:2020-07-25 15:08:16 【问题描述】:

我被困在基于条件的 JQuery DataTables 中隐藏列,我有基于选中值的单选按钮列表我需要在数据表中显示特定列我如何实现这一点?我像下面一样隐藏列,但是当我点击 excel 按钮时,所有隐藏的列都显示在 excel 中,没有任何数据

if ($scope.searchAtDefaultVal == 'Voucher') 
   //hide coloumn for voucher
   $scope.voucherSearchTable.column(8).visible(false);
   $scope.voucherSearchTable.column(9).visible(false);
   $scope.voucherSearchTable.column(10).visible(false);
   $scope.voucherSearchTable.column(11).visible(true);

   
   else 
     $scope.voucherSearchTable.column(8).visible(true);
     $scope.voucherSearchTable.column(9).visible(true);
     $scope.voucherSearchTable.column(10).visible(true);
     $scope.voucherSearchTable.column(11).visible(false);

   

上面的代码我正在工作,但问题是当我点击 excel 按钮时,隐藏列也显示在没有数据的 excel 表中。

【问题讨论】:

我实际上已经对数据表进行了一些 DOM 操作,并创建了自己的 excel 导出函数来显示它。 【参考方案1】:

初始化表格时,可以指定导出数据的选择器:

buttons: [
           
             extend: 'excelhtml5',
             exportOptions:  
                columns: ':visible' // <-- using datatables selector
            
        
    ]

这样只会导出表格的可见部分,更多信息请查看https://datatables.net/extensions/buttons/examples/html5/columns.html

【讨论】:

我已经添加了这个,但它会隐藏所有隐藏列在excel表格中,如何在excel中显示隐藏列。

以上是关于如何在 Jquery Datatables 中根据条件隐藏列?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery.DataTables init 上禁用排序?

如何从 Datatables jQuery 插件中提取过滤后的数据?

如何在不刷新网页的情况下使用 ajax 和 jquery 动态更改 Datatables 的多个列标题?

如何在 jQuery DataTables 中完全抑制表头?

如何在 Jquery / Datatables 中打印 [关闭]

jQuery DataTables:如何添加类if the string exists in the?