我当前有一个数据表,每个记录都有一个按钮,当点击该按钮时显示该帐户的其他信息。发生这种情况时,我调用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();
});
答案 0 :(得分:50)
oTable.fnFilter('',7);
oTable.fnFilter('');
答案 1 :(得分:6)
使用数据表>清除所有过滤器很简单; 1.10:
oTable.search( '' ).columns().search( '' ).draw();
答案 2 :(得分:0)
对我来说,这个插件效果很好:
答案 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,