Javascript 重置数据表中的筛选数据
我有一个Datatable,其中使用AJAX检索数据。然后我有两个搜索函数来过滤数据。搜索功能在处理未过滤的数据时工作正常。一旦应用了一个过滤器,我就无法清除该过滤器或应用另一个过滤器,因为两个过滤器是互斥的(一个过滤器全部付费,另一个过滤器全部未付费)。我认为我的问题是,一旦数据被过滤,然后我尝试清除或应用另一个过滤器,它将作用于数据的子集(已经过滤的数据)。如何在应用新筛选器之前清除并重置筛选数据,以及如何重置筛选器。我已经在这个网站上尝试了一些解决方案,但都不起作用。这里是我的过滤函数Javascript 重置数据表中的筛选数据,javascript,jquery,datatables,datatables-1.10,Javascript,Jquery,Datatables,Datatables 1.10,我有一个Datatable,其中使用AJAX检索数据。然后我有两个搜索函数来过滤数据。搜索功能在处理未过滤的数据时工作正常。一旦应用了一个过滤器,我就无法清除该过滤器或应用另一个过滤器,因为两个过滤器是互斥的(一个过滤器全部付费,另一个过滤器全部未付费)。我认为我的问题是,一旦数据被过滤,然后我尝试清除或应用另一个过滤器,它将作用于数据的子集(已经过滤的数据)。如何在应用新筛选器之前清除并重置筛选数据,以及如何重置筛选器。我已经在这个网站上尝试了一些解决方案,但都不起作用。这里是我的过滤函数 f
function outstandingFees() {
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var zero = 0;
var fee = parseFloat(data[8]) || 0; // use data for the balance due column
if (fee > zero) {
return true;
}
return false;
}
);
table.draw();
}
function paidFees() {
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var zero = 0;
var fee = parseFloat(data[8]); // use data for the balance due column
if (fee === zero) {
return true;
}
return false;
}
);
table.draw();
}
function allFees() {
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var zero = 0;
var fee = parseFloat(data[8]) || 0; // use data for the balance due column
if (zero <= fee) {
return true;
}
return false;
}
);
table.draw();
}
功能未付费用(){
$.fn.dataTable.ext.search.push(
功能(设置、数据、数据索引){
var 0=0;
var fee=parseFloat(数据[8])| | 0;//将数据用于余额到期列
如果(费用>零){
返回true;
}
返回false;
}
);
table.draw();
}
函数paidFees(){
$.fn.dataTable.ext.search.push(
功能(设置、数据、数据索引){
var 0=0;
var fee=parseFloat(数据[8]);//将数据用于余额到期列
如果(费用==零){
返回true;
}
返回false;
}
);
table.draw();
}
函数allFees(){
$.fn.dataTable.ext.search.push(
功能(设置、数据、数据索引){
var 0=0;
var fee=parseFloat(数据[8])| | 0;//将数据用于余额到期列
如davidkonrad所说,如果(0)
$.fn.dataTable.ext.search.pop()
为我工作。我只是将其添加到每个方法的顶部,以便在应用新方法之前清除过滤器。正如davidkonrad所说
$.fn.dataTable.ext.search.pop()
为我工作。我只是将其添加到每个方法的顶部,以便在应用新方法之前清除过滤器。您可以通过$.fn.dataTable.ext.search.pop()清除自定义过滤器。
(后进先出)谢谢。我知道它必须是我遗漏的简单的东西。这非常有效。我将它添加到两个筛选函数的顶部,并在allFees函数中使用它。你能把它放入一个答案中,这样我们就可以看到这个问题的答案了。你可以通过$.fn.dataTable.ext.search.pop()
(last in first out)谢谢。我知道这一定是我遗漏的一些简单的东西。这非常有效。我将其添加到两个筛选函数的顶部,并在allFees函数中使用。您能将其放入答案中,以便我们可以看到这个问题得到了回答。