我正在为我当前的项目使用数据表。在我的一张表中,我有几列。其中一列是 Status
列,它将具有以下三个值之一:Open
、Rejected
和 Approved
。我想用三个按钮过滤表中显示的记录,In Progress
和 Closed
,如下所示:
<div class="btn-group pull-right">
<button id="onprogress" class="btn btn-default filter">On Process</button>
<button id="closed" class="btn btn-default filter">Closed</button>
<button id="all" class="btn btn-default filter">All</button>
</div>
这是我使用的 javascript 代码:
var dataTables = $('#datatable').DataTable({
"info": false,
"lengthChange": false
});
$('#all').on('click', function () {
dataTables.columns(4).search("").draw();
});
$('#onprogress').on('click', function () {
dataTables.columns(4).search("Open" ).draw();
});
$('#closed').on('click', function () {
dataTables.columns(4).search("Rejected","Approved").draw();
});
javascript 代码适用于#onprogreess 按钮,因为它只搜索一个值Open
。如何使其与二值搜索一起使用?
(#closed 按钮应该显示带有Rejected
或Done
状态的记录)
最佳答案
要从单列搜索多个值,您可以使用管道,如下所示:
dataTable.columns(4).search("Rejected|Done", true, false, true).draw();
您必须传递以下四个参数:
- 输入:要应用于表格的搜索字符串
- Regx:视为正则表达式
(true)
或不(default, false)
。 - 智能执行智能搜索(默认,true)或不执行(false)。有关智能搜索的说明,请参见下文。
- CaseInsen:不区分大小写匹配(默认,true)或不区分大小写(false)。
关于javascript - 使用数据表的按钮自定义过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38824238/