我是jQuery的新手,我需要知道是否有任何方法可以禁用我的jQuery数据表中的一个列的过滤? 我的数据表有5列,我需要禁用最后一列的过滤。
答案 0 :(得分:21)
Use the bSearchable
flag。来自文档:
// Using aoColumnDefs
$(document).ready( function() {
$('#example').dataTable( {
"aoColumnDefs": [
{ "bSearchable": false, "aTargets": [ 0 ] }
] } );
} );
// Using aoColumns
$(document).ready( function() {
$('#example').dataTable( {
"aoColumns": [
{ "bSearchable": false },
null,
null,
null,
null
] } );
} );
答案 1 :(得分:2)
var mSortingString = [];
var disableSortingColumn = 4;
mSortingString.push({ "bSortable": false, "aTargets": [disableSortingColumn] });
$(document).ready(function () {
var table = $('#table').dataTable({
"paging": false,
"ordering": true,
"info": false,
"aaSorting": [],
"orderMulti": true,
"aoColumnDefs": mSortingString
});
});
我花了很多时间试图解决这个应该是一个简单的任务,所以对于任何人仍然只是添加前3行并引用你要禁用的列,我的第5列。
答案 2 :(得分:2)
你也可以这样做:
$('#ProductsTable').dataTable({
"lengthMenu": [[20, 50, -1], [20, 50, "All"]],
"pageLength": 20,
"columnDefs": [
{ "orderable": false, "targets": [-1, 1] },
{ "searchable": false, "targets": [-1, 1] }
]
});
答案 3 :(得分:2)
以下是使用Datatable ColumnDef禁用多列上的全局搜索过滤的方法。
var datatable = $('#datatable').DataTable({
"deferRender": true,
"columnDefs": [
{ targets: 0, searchable: true },
{ targets: [1,2], searchable: true },
{ targets: '_all', searchable: false }
]
});
这将启用对第0,1和0列的搜索。 2索引明智并禁用其余所有。规则从上到下优先适用。
答案 4 :(得分:1)
这也有效。只需将数字4更改为所需的列号:
var table = $('#mytable').DataTable(
{
initComplete: function () {
this.api().columns().every(function () {
var column = this;
if (column[0][0] == 4) {
console.log(column);
$(column.footer()).html('');
}
});
},
}
);