自定义过滤使用Button for Datatable

时间:2016-08-08 08:15:26

标签: javascript jquery datatable

我使用Datatable作为我当前的项目。在我的一张桌子中,我有几列。其中一列是Status列,其中包含三个值OpenRejectedApproved中的一个。我想要使​​用三个按钮In ProgressClosed过滤表格中显示的记录,如下所示:

<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。如何使它适用于两个值搜索?

(#关闭按钮应显示RejectedDone状态记录

2 个答案:

答案 0 :(得分:9)

要从单列搜索多个值,您可以使用管道,如下所示:

dataTable.columns(4).search("Rejected|Done", true, false, true).draw();

您必须传递以下四个参数:

  1. 输入:搜索字符串以应用于表格
  2. Regx:视为正则表达式(true)或不(default, false)
  3. 智能:执行智能搜索(默认,true)或不执行(false)。有关智能搜索的说明,请参阅下文。
  4. CaseInsen:不区分大小写匹配(默认值,true)或不匹配(false)。
  5. More details

答案 1 :(得分:0)

var table = $('#example')。DataTable();

表     .columns(4)     。搜索(””)     .draw();