数据表:在过滤器上添加回调函数并获取过滤后的数据数组

时间:2015-04-23 06:59:55

标签: javascript jquery datatable jquery-datatables

我使用的是Datatable 1.10.4。

我将数据数组发送到表中以填充表格, 初始化如下:

table = $('#dashboard-user-list-table').dataTable({
    "data":window.MyApp.Model.userModel.getUsers(), //sourced JS Array 
    "iDisplayLength": 4,
    ---
    --- 
});

我想添加一个onfilter回调函数并获取过滤后的数据数组 并做一些事情。

即使没有回调函数,有没有办法获得Filtered数据数组? (基本上我需要获取我作为源页数据传递的数组)

Datatables插件是否允许我这样做?如果是这样,我在文档中找不到任何直观的内容。

你能建议我怎么做吗?

参考JSFIDDLE

1 个答案:

答案 0 :(得分:2)

我知道您在执行搜索时希望将过滤后的数据作为数组 如果是这样,试试这个。

var table = $('#dashboard-user-list-table').dataTable({
    ---
    --- 
});
$('##dashboard-user-list-table').on('search.dt', function () {
    var api = table.api();
    //uppercase used for case insensitive search
    var searchTerm = api.search().toUpperCase(); 
    var filteredData = api.data()
        .filter(function (value, index) {
            return value.toString().toUpperCase().indexOf(searchTerm) !== -1;
        }).toArray();
    console.log(filteredData);
});

工作小提琴:http://jsfiddle.net/codeandcloud/a8b3ttf7/

免责声明:可能有一种更简单的方法。我不是那么多datatables.net专家