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

标签 javascript jquery datatables

我正在使用数据表 1.10

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

这是我的代码。

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>')
                }
            });
        });
    }
});

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

这样,每次数据表运行时我都应该获得新的过滤器。

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

最佳答案

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

如果我理解正确的话,当应用任何其他过滤器时,您想要更改邻居过滤器(例如将“无数据”选项标记为灰色)。如果这是正确的,请坚持 drawCallback

您在代码中使用的逻辑似乎与解决此问题的方式很接近,我不知道任何 DT 支持的创建组合框列过滤器和更新它们的方法,所以是的,每次绘制时,检查过滤器,并更新/重新创建组合。

如果您不追求 DT 1.10,here is working plugin Dylan Kuhn 的 DT 1.9。

关于javascript - 数据表多选下拉过滤器更新过滤器更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23559339/

相关文章:

javascript - 刷新某个div

javascript - Jquery 无响应脚本错误

php - 使用复选框 codeigniter 从数据表中获取值

javascript - 拉维尔 : Data-table search option not working using relationship table field

javascript - 为什么 jqxgrid 在滚动网格中未选中复选框或单选按钮列?

javascript - Nuxt 配置动态样式表

javascript - 如何在更改时附加 url

JavaScript 幻灯片放映不流畅

javascript - 如何强制用户必须在 iframe 中滚动 pdf

javascript - 当前页面上的行数?