JQuery DataTables - 删除fnFilter并显示所有结果

时间:2011-12-07 21:46:12

标签: jquery filter datatables

我当前有一个数据表,每个记录都有一个按钮,当点击该按钮时显示该帐户的其他信息。发生这种情况时,我调用fnFilter()来过滤该特定行,以便不显示其他行,并且用户知道我显示的子信息是针对该特定帐户的。 我想做的是,当用户在搜索工具栏中单击时,它会隐藏我显示的子信息,然后清除过滤器并显示所有可用的原始记录。 一切正常,但过滤器没有被清除,所以只显示最初选择的行。

不确定我错过了什么。我已经尝试了从使用fnFilter('')到fnDraw()到fnReloadAjax()的所有内容。这些(或任何组合)似乎都不起作用!

更新 我似乎已经解决了这个问题。如果我从fnFilter(accountid,7)中删除#列,则使用fnFilter('')会重新显示所有记录。但是,我确实需要按特定列进行筛选,因为它是唯一包含每个记录的唯一值的列。有任何想法吗?我确实尝试使用fnFilter('',null)但没有成功。

这是我的代码:

var oTable = $('.mypbhs_accounts').dataTable({
        "bProcessing": true,
        "sAjaxSource": 'sql/mypbhs_accounts.php',      
        "aaSorting": [[1, "asc" ]],
        "bJQueryUI": true,
        "sPaginationType": "full_numbers",
        //"bStateSave": true, //Use a cookie to save current display of items
        "aoColumns": [
            {"asSorting": [  ], "sClass":"center"},
            null,
            null,
            null,
            null,
            null,
            null,
            { "bSearchable": true, "bVisible": false },       
            { "bSearchable": true, "bVisible": false }       
        ],
        "bScrollCollapse": true,
        "sScrollX": "100%",
         "fnInitComplete": function() {
                oTable.fnAdjustColumnSizing();
         }
    });
/*** CLEAR CURRENT ACCOUNT INFO ***/
$(document).on('click','.mypbhs_content .dataTables_filter',function(){ //THIS IS CALLED WHEN USER CLICKS INTO THE SEARCH BAR
    $('.mypbhs_content .dataTables_filter :input').val(''); //CLEAR CURRENT VALUE IN THE SEARCH BAR
    oTable.fnFilter('');
    //oTable.fnDraw();
    //oTable.fnReloadAjax();
    $('.mypbhs_truform_info').empty(); //REMOVE SUB-INFORMATION SO IT DOESNT GET ASSOCIATED WITH WRONG ACCOUNT
    $('.control_bar').children('ul.mypbhs_account_controls').empty();
});

5 个答案:

答案 0 :(得分:50)

啊,我似乎已经弄清楚了。 必须清除该特定列上的过滤器和全局过滤器:

oTable.fnFilter('',7);
oTable.fnFilter('');

答案 1 :(得分:6)

使用数据表>清除所有过滤器很简单; 1.10:

oTable.search( '' ).columns().search( '' ).draw();

答案 2 :(得分:0)

对我来说,这个插件效果很好:

https://datatables.net/plug-ins/api/fnFilterClear

答案 3 :(得分:0)

在Datatables v1.10上

$('.dataTables_filter input[type=search]').val(''); 

诀窍(清除搜索框)

答案 4 :(得分:-2)

"sPaginationType" : "bootstrap",
"iDisplayLength": 25,
"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
"bStateSave" : false,

如果您想保存搜索结果,请提及

"sPaginationType" : "bootstrap",
"iDisplayLength": 25,
"aLengthMenu": [[25, 50, 100, -1], [25, 50, 100, "All"]],
"bStateSave" : true,