过滤器更改的数据表多选下拉过滤器更新

时间:2014-05-09 07:54:10

标签: javascript jquery datatables jquery-datatables

我正在使用Datatables 1.10

当我在Datatable中选择过滤器时,我正在尝试根据生成的结果集更新我的过滤器。

这是我的代码。

table = $('#example').DataTable({
    "bSort": false,
    "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        $("#example thead td ").each(function (i) {
            if (i > 1) {
                select = $('<select class="form-control"><option value=""></option></select>')
                    .appendTo($(this).empty())
                    .on('change', function () {
                        table.column(i)
                            .search($(this).val())
                            .draw();
                    });
            }

            table.column(i).data().unique().sort().each(function (d, j) {
                if (i > 1 && d !== "") {
                    select.append('<option value="' + d + '">' + d + '</option>')
                }
            });
        });
    }
});

我在上面的代码中尝试做的是在数据表函数的回调中添加下拉过滤器代码。

因此,每当数据表运行时,我都应该获得新的过滤器。

数据表中是否有任何选项可以执行此操作?

1 个答案:

答案 0 :(得分:1)

您似乎在DT v 1.10上使用DT 1.9 API 请参阅较新版本的DT http://www.datatables.net/reference/

如果我理解正确,您需要在应用任何其他过滤器时更改neighboor过滤器(标记&#34;无数据&#34;选项灰色)。如果这是正确的,坚持下去 drawCallback

您在代码中使用的逻辑似乎接近于如何处理,我不知道任何DT支持的方法来创建组合框列过滤器和更新它们,所以是的,每次它绘制,检查过滤器,并更新/重新创建组合。

如果您没有为Dylan Kuhn追逐DT 1.10,here is working plugin获取DT 1.9。