jQuery DataTables隐藏列而不从DOM中删除它
我需要隐藏列以显示在jquery数据表中。 当我使用bVisible属性隐藏列时,它会从DOM中消失。
我想将列的表格单元格的显示属性设置为无,以便这些值不会出现在视图中,但它们仍然应该存在于DOM中,因为我隐藏的列唯一地标识了行,我需要知道唯一的行选择ID。 如何实现这一目标。
我使用服务器端分页使用aaData属性填充表。
看看这个问题,但这些选项将其从DOM中删除。 jquery datatables隐藏列
您应该使用className
以及columnDefs或列 ,
像这样在你的CSS中定义hide_column
类
.hide_column { display : none; }
您有两种方法来分配.hide_column
类:
使用columnDefs
(将自定义类分配给第一列):
$('#example').DataTable( { columnDefs: [ { targets: [ 0 ], className: "hide_column" } ] } );
OR columns
$('#example').DataTable( { "columns": [ { className: "hide_column" }, null, null, null, null ] } );
从这里获取的代码片段
老答案
尝试添加
"sClass": "hide_column"
应该隐藏该列…
以Daniel的答案为基础:
CSS:
th.hide_me, td.hide_me {display: none;}
在datatables init中:
"aoColumnDefs": [ { "sClass": "hide_me", "aTargets": [ 0 ] } ] // first column in visible columns array gets class "hide_me"
请记住将您隐藏的类添加到您的thead单元格中:
First Column Second Column Third Column
如果您正在使用服务器端处理并希望从ajax源传入数据而不在数据表中可见,那么这也是一种有用的策略。 您仍然可以在前端检索列的值而无需显示它。 有助于通过隐藏数据值等进行过滤
例:
// In datatables init file
如果要隐藏多个列:
$('#example').dataTable({ "columnDefs": [{ "targets": [0,1,3], //Comma separated values "visible": false, "searchable": false } ] });
这是我对你的贡献。
不确定代码是否正确但是它的工作。
如果你有像我这样的多个设置栏。
$('#example').dataTable( { "columnDefs": [ { "targets" : 'no-sort', "orderable": false, "order": [], }], "columnDefs": [ { "targets" : 'hide_column', "orderable": false, "order": [], "visible": false }] } );
您可以使用方法hide
。
$(element).hide();
要显示元素,请使用方法show
:
$(element).show();
要获取所需的列,可以使用jquery中n-th child
选择器。