我想在列过滤器中选择多个项目。以下示例允许您使用下拉列表过滤列:
http://datatables.net/release-datatables/examples/api/multi_filter_select.html
但是,我希望能够在列过滤器中选择多个项目,可能在下拉列表中的每个项目旁边都有一个复选框。例如,在示例中,我会为“CSS 等级”打勾“A”和“C”,这样表格中只会显示这些等级。
如何使用 DataTables 插件或其他方式获得多选列过滤器?
我想在列过滤器中选择多个项目。以下示例允许您使用下拉列表过滤列:
http://datatables.net/release-datatables/examples/api/multi_filter_select.html
但是,我希望能够在列过滤器中选择多个项目,可能在下拉列表中的每个项目旁边都有一个复选框。例如,在示例中,我会为“CSS 等级”打勾“A”和“C”,这样表格中只会显示这些等级。
如何使用 DataTables 插件或其他方式获得多选列过滤器?
您可以使用选择列表、复选框等构建自己的过滤器 div,并使用fnFilter从服务器请求过滤后的数据。例如:
$("#mycheckbox").click(function () {
var dt = $('#mytable').dataTable({ "bRetrieve": true });
dt.fnFilter($("#mycheckbox").is(':checked'), 1);
});
帖子:
sSearch_1 : true/false
这真的很容易,以各种方式多次询问 - 但令人惊讶的是我找不到完全匹配的。如果您有一个对应于您的列的:
<select class="form-control" id="ddlSearch">
<option value="0">Name</option>
<option value="1">Position</option>
<option value="2">Office</option>
<option value="3">Age</option>
<option value="4">Start date</option>
<option value="5">Salary</option>
</select>
然后实现这个 javascript 在单独的列中获取 seacrh
var table;
$(document).ready(function() {
table = $('#example').DataTable({
pageLength: 100,
dom: 'lrtip',
});
var column_no = 0;
$('#ddlSearch').on('change',function(){
column_no = Number($(this).val());
});
$( '#txtSearch' ).on( 'input', function () {
if ( table.columns([column_no]).search() !== $( '#txtSearch' ).val() ) {
table.columns([column_no]).search( $( '#txtSearch' ).val() ).draw();
}
} );
});
例如试试这个https://jsfiddle.net/07rnpgs1/
一切顺利
您可以查看这个DataTables 插件。它为每列提供多个标准选择,以及跨多个列的联合选择。
这是简短的工作演示:
$(document).ready(function () {
//Source data definition
var tableData = [{
name: 'Clark Kent',
city: 'Metropolis',
race: 'cryptonian'
}, {
name: 'Bruce Wayne',
city: 'Gotham',
race: 'human'
}, {
name: 'Steve Rogers',
city: 'New York',
race: 'superhuman'
}, {
name: 'Peter Parker',
city: 'New York',
race: 'superhuman'
}, {
name: 'Thor Odinson',
city: 'Asgard',
race: 'god'
}, {
name: 'Jonathan Osterman',
city: 'New York',
race: 'superhuman'
}, {
name: 'Walter Kovacs',
city: 'New Jersey',
race: 'human'
}, {
name: 'Arthur Curry',
city: 'Atlantis',
race: 'superhuman'
}, {
name: 'Tony Stark',
city: 'New York',
race: 'human'
}, {
name: 'Scott Lang',
city: 'Coral Gables',
race: 'human'
}, {
name: 'Bruce Banner',
city: 'New York',
race: 'superhuman'
}
];
//DataTable definition
window.dataTable = $('#mytable').DataTable({
sDom: 'tF',
data: tableData,
columns: [{
data: 'name',
title: 'Name'
}, {
data: 'city',
title: 'City'
}, {
data: 'race',
title: 'Race'
}]
});
});
<!doctype html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.mfilter.tk/js/mfilter.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.mfilter.tk/css/mfilter.min.css">
</head>
<body>
<table id="mytable"></table>
</body>
</html>