【问题标题】:dataTables custom filtering of <tr> if cell contains value如果单元格包含值,则 dataTables 自定义过滤 <tr>
【发布时间】:2015-06-17 08:35:13
【问题描述】:

如何过滤包含具有特定值的单元格的数据表行?我需要显示所有行,或者只显示特定列中具有特定值“A”的行。

        <tr>
            <td>...</td>
            <td>...</td>
            <td>...</td>
            <td>...</td>
            <td>A</td>
        </tr>

这是一个按行类过滤的示例,但我将拥有的数据源不会提供行类。

示例使用:

    $.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex) {    
      var myRowClasses = oSettings.aoData[iDataIndex].nTr.className.split(" ");
      var grade = $('.grade-check:checked').data('grade');    
      return myRowClasses.indexOf(grade) > -1;
    });

我需要更改它,以便它查找具有 td 值的行,而不是具有类名的行。

http://jsfiddle.net/lbriquet/d2b6vmdm/3/

提前感谢您的帮助!!

【问题讨论】:

    标签: jquery filter datatables


    【解决方案1】:

    这里有一些问题。首先,您可以减少对RadioGroup1 元素的冗余处理:

    $('[name="RadioGroup1"]').change(function () {
       oTable.fnDraw();
    });
    

    单选按钮根本不需要id

    <label>
       <input type="radio" name="RadioGroup1" class="grade-check" data-grade="*" />
       All grades
    </label>
    

    已将CX 添加到下面的分叉小提琴中,并将“gradeAll”更改为简单的*。现在您可以创建过滤器了:

    $.fn.dataTableExt.afnFiltering.push(function (oSettings, aData, iDataIndex) {
        var filter = $('input[name=RadioGroup1]:checked').data('grade'),
            grade = aData[4];
        return grade == filter || filter == "*";
    });
    

    分叉小提琴 -> http://jsfiddle.net/vs0cagLj/

    【讨论】:

    • 非常感谢您的帮助!我只是遇到了另一个功能的问题。它似乎与显示全部的星号过滤器有关
    猜你喜欢
    • 2015-08-09
    • 2023-04-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多