我在隐藏jQuery数据表列时遇到问题。我希望该列检索数据,但我不希望它显示在显示页面上。我想隐藏我的第8列,所以从CSS我试图隐藏它,它给了我可折叠的div。
下面是我的数据表代码和隐藏类是“hideCol”。
var userTable = $('#user').dataTable( {
"processing": true,
"serverSide": true,
"ajax":"admin/getData.php",
"responsive" : true,
"lengthMenu": [10, 25],
"paginationType" : "input",
columns: [
{ data:'param0'},
{ data: 'param1' },
{ data: 'param2' },
{ data: 'param3' },
{ data: 'param4' },
{ data: 'param5' },
{ data: 'param6' },
{ data: 'param7'},
],
fnRowCallback:function(nRow,aData, iDisplayIndex, iDisplayIndexFull){
var seenReportedVal =Number($('td:eq(7)', nRow).text());
$('td:eq(7)', nRow).addClass('hideCol');
if(seenReportedVal==0)
{
$(nRow).addClass('bold');
}
},
"columnDefs": [
{ "visible": false, "targets": 7 }
],
});
答案 0 :(得分:3)
尝试使用此代码
var userTable = $('#user').dataTable( {
"processing": true,
"serverSide": true,
"ajax":"admin/getData.php",
"responsive" : true,
"lengthMenu": [10, 25],
"paginationType" : "input",
columns: [
{ data:'param0'},
{ data: 'param1' },
{ data: 'param2' },
{ data: 'param3' },
{ data: 'param4' },
{ data: 'param5' },
{ data: 'param6' },
{ data: 'param7'},
],
"columnDefs": [
{ "visible": false, "targets": [7] }
],
});
答案 1 :(得分:1)
您可以使用列的visible属性。 我建议用引号括起对象属性,例如"列","数据"或"可见"。
"columns": [
{ "data":'param0'},
{ "data": 'param1', "visible": false},
{ "data": 'param2'},
{ "data": 'param3'},
{ "data": 'param4'},
{ "data": 'param5'},
{ "data": 'param6'},
{ "data": 'param7'},
]
答案 2 :(得分:1)
我不知道你是否已经解决了问题,但由于我遇到了同样的问题,我将至少与你分享我的解决方案。
看起来你在响应模式下使用dataTable,所以基于此,如果你想隐藏一个列,你必须根据需要为它应用特定的css类。您应用于与该列关联的元素,并且您已解决问题。
可以找到有关不同css类的更多信息here。
答案 3 :(得分:0)
我用一些CSS解决了这个问题。可能对他人有所帮助。
"aoColumnDefs": [
{"sClass": "dt_col_hide", "aTargets": [3]}
],
dt_col_hide是一个css类,在这种情况下它会隐藏列索引3。
.dt_col_hide{display: none;}
或
.dt_col_hide{visibility: hidden;}
根据您的要求。