使用jQuery Datatables插件,有没有一种方法可以隐藏(和显示)表格列?
我找到了重新加载表格数据的方法:使用fnClearTable
和 fnAddData
。
但我的问题是,在表格的某个视图中(例如隐藏模式),我不想显示某些列。
使用jQuery Datatables插件,有没有一种方法可以隐藏(和显示)表格列?
我找到了重新加载表格数据的方法:使用fnClearTable
和 fnAddData
。
但我的问题是,在表格的某个视图中(例如隐藏模式),我不想显示某些列。
以前的答案使用的是旧版DataTables的语法。在1.10+版本中,您可以使用column().visible():
var dt = $('#example').DataTable();
//hide the first column
dt.column(0).visible(false);
可以使用columns().visible()来隐藏多个列:
var dt = $('#example').DataTable();
//hide the second and third columns
dt.columns([1,2]).visible(false);
要在初始化表格时隐藏列,您可以使用 columns 选项:
$('#example').DataTable( {
'columns' : [
null,
//hide the second column
{'visible' : false },
null,
//hide the fourth column
{'visible' : false }
]
});
null
。或者,您可以使用columnDefs来针对特定列进行操作:$('#example').DataTable( {
'columnDefs' : [
//hide the second & fourth column
{ 'visible': false, 'targets': [1,3] }
]
});
您可以使用以下命令隐藏列:
fnSetColumnVis( 1, false );
第一个参数是列的索引,第二个参数是可见性。
来源: http://www.datatables.net/api - 函数 fnSetColumnVis
如果还有其他人遇到同样的问题,这对我有效...
"aoColumnDefs": [{ "bVisible": false, "aTargets": [0] }]
在datatable初始化期间,您可以定义这个。
"aoColumns": [{"bVisible": false},null,null,null]
对于使用服务器端处理并通过隐藏列将数据库值传递到jQuery的任何人,我建议使用“sClass”参数。您可以使用css display:none隐藏列,同时仍然能够检索其值。
css:
th.dpass, td.dpass {display: none;}
在数据表初始化中:"aoColumnDefs": [ { "sClass": "dpass", "aTargets": [ 0 ] } ] // first column in visible columns array gets class "dpass"
//编辑:记得将你的“hidden”类添加到thead单元格中
$(document).ready(function() {
$('#example').dataTable( {
columns= [
{
"data": "name_data",
"visible": false
}
]
});
});
var example = $('#exampleTable').DataTable({
"columnDefs": [
{
"targets": [0],
"visible": false,
"searchable": false
}
]
});
Target 属性定义了列的位置。Visible 属性负责控制列是否可见。Searchable 属性负责控制搜索功能是否可用。如果设置为 false,该列不能被搜索。
使用API可以实现以下功能:
var table = $('#example').DataTable();
table.column( 0 ).visible( false );
查看以下信息:
columns.visible
选项完成。如果您希望您的答案更加全面,我也会提到它。 - Gyrocode.comcolumns.visible
,请参见 https://datatables.net/reference/option/columns.visible - Gyrocode.com