【问题标题】:Filter checked rows in Datatables?过滤数据表中的选中行?
【发布时间】:2014-12-02 20:20:35
【问题描述】:

有没有办法根据该列的复选框是否被选中来过滤数据表?我有带有选中/未选中/清除过滤器单选选项的类别,但似乎无法让数据表过滤它。

http://jsfiddle.net/anschwem/s827x/68/

$('input[name=lock]').on('click', function(){
        var col = '5';
        var chkbx = $('#multi').eq(col).find('input[type=checkbox]');

        // filter table
        if($(this).attr('id') == 'locked'){
            value = !chkbx.is(':checked')//'y'
        } else if ($(this).attr('id') == 'unlocked') {
            value = chkbx.is(':checked')//'n'
        } else {
            value = '';
        }

        console.log(value)

        // filter accordingly
        table
            .column(5)
            .search(value)
            .draw();
    });

【问题讨论】:

    标签: jquery checkbox filter datatables filtering


    【解决方案1】:

    我知道这个问题已经快 2 年了,但我找到了解决方案!

    我花了很长时间才开始使用它。这是我的解决方案:

    (这需要至少 1.10 版本的 jQuery 数据表。)

    我有一个动态数据表,只有在用户在屏幕上进行选择时才会填充。表全部定义后,我有这个代码:

    $.fn.dataTableExt.afnFiltering.push(
            function (oSettings, aData, iDataIndex) {
                var val1 = $('input[name=displayIncluded]:checked').val();
    
                if (val1 == "included") {
                    return oSettings.aoData[iDataIndex].nTr.childNodes[10].firstChild.checked;
                } else if (val1 == "excluded") {
                    return ! oSettings.aoData[iDataIndex].nTr.childNodes[10].firstChild.checked;
                } else {
                    return true; // include all lines
                }
            }
        );
    

    带有复选框的列是第 10 列(它是硬编码的,这让我很困扰,但它必须这样做)。

    我设置了“全部”、“包含”和“排除”的单选按钮,所有按钮的名称都为“显示包含”。变量 val1 加载了所选单选按钮的值。如果复选框被选中,在单选按钮上选择“包含”将返回 true,或者选择“排除”将返回 false。

    oSettings.aoData[iDataIndex].nTr 获取表的完整对象行,其中 aoData 获取它的字符串数组表示。然后我就得到了我想要的列(10),firstChild是checkbox输入。

    在单选按钮上,我有一个 on('change') 函数调用它:

    function displayIncluded() {
         $('#isbnTable').DataTable().draw(false);}
    

    希望这对那里的人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多