2015-10-14 81 views
2

我正在使用dataTable插件在jsp中显示我的表。我也想用复选框选项。喜欢的东西在这里Datatables:隐藏基于隐藏列值的行

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> 

回答

3

您可以使用数据表

$.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/

的afnFiltering功能