繁体   English   中英

数据表中特定列的下拉过滤器

[英]Dropdown filter on specific column in DataTable

我正在使用DataTables创建表。 列之一包含“ i”元素和隐藏的输入。 我想通过该隐藏值过滤数据行,但是我无法做到这一点。 到目前为止,我发现问题出在search()方法中,我想它不会在我保持其价值的'input'之类的子元素中进行搜索。 代码片段:

var select = $('<select><option value=""></option><option value="true">Accepted</option><option value="false">Rejected</option></select>')
                     .appendTo($(column.footer()).empty())
                                .on('change', function () {
                                    var val = $(this).val();

                                    column.search(val, true, false) // problem is here
                                        .draw(true);
                                });

没关系,我已经设法自己实现了。 我需要定义“ columnDefs”,并在此“目标”中定义要过滤和“渲染”的列。 这是代码:

var table = $('#dataCheck').DataTable({
    "sDom": "ltp",
    "columnDefs": [{
        "targets": [6],
        "render": function ( data, type, full, meta ) {
            if(type === 'filter'){
                return $('#dataCheck').DataTable().cell(meta.row, meta.col).nodes().to$().find('input').val();
            } else {
                return data;
            }
        }
    }],
    initComplete: function () {
        this.api().columns().every(function (i) {
            var column = this;
            if (i == 6)
            {

                var select = $('<select><option value="..."></option><option value="true">Accepted</option><option value="false">Rejected</option></select>')
                     .appendTo($(column.footer()).empty())
                                .on('change', function () {
                                    var val = $(this).val();

                                    column.search(val, true, false)
                                        .draw(true);
                                });

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

        });
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM