数据表:根据隐藏的列值隐藏行

时间:2015-10-14 17:07:18

标签: javascript datatable

我正在使用dataTable插件在jsp中显示我的表格。我也想使用复选框选项。像这里的东西

DataTables: filter rows based on value in column

在这种情况下,不会隐藏类型的值。但在我的表中,隐藏了第一列的值。在这种情况下如何编写JavaScript。

我的数据表看起来像这样:

var userTable = $("#users").dataTable({
                    "sPaginationType": "full_numbers",
                    "bPaginate": true,
                    "bScrollCollapse": true,
                    "iDisplayLength": 10,
                    "bFilter": false,
                    "bJQueryUI": true,
                    "aoColumnDefs": [{ "bVisible": false, "aTargets": [0] }],

                });

只有在未隐藏列值时,我才能使用链接中给出的解决方案。

function Clear() {    
    $('#users tr').show();}function Search(word) {
    Clear();
$('#users tr > td:first-child').each(function () {
        if ($(this).html() != word) {
             $(this).parent().hide();
        }
     });
}

我的标签看起来像这样:

<label>
  <input type="radio" name="RadioGroup1" value="radio1" id="radio1" onclick="Search('1')"/>
  Enabled</label>
<label>
  <input type="radio" name="RadioGroup1" value="radio2" id="radio2" onclick="Search('0')"/>
  Disabled</label>
  <label>
  <input type="radio" name="RadioGroup1" value="radio3" id="radio3" onclick="Clear()"/>
  All</label>

1 个答案:

答案 0 :(得分:4)

您可以使用数据表的afnFiltering功能

$.fn.dataTableExt.afnFiltering.push(function(oSettings, aData, iDataIndex) {
    var $radio = $("input[name='RadioGroup1']:checked").val();
    // show everything
    if ($radio == "all")
        return true;
    else // Filter column 1 where matches RadioGroup1.value
        return aData[0] == $radio;
});

http://jsfiddle.net/np8875Lm/1/