jQuery DataTables过滤多个表格

3

我在一些HTML表格中使用jQuery DataTables插件。现在,我有一个页面需要列出多个表格,并且我需要使用相同的筛选器对其进行筛选。具体来说,我需要使用自定义的日期范围作为筛选条件。

所有表格都使用相同的CSS类来构建DataTable,并且我已经实现了基于日期范围的搜索功能。

$.fn.dataTableExt.afnFiltering.push(fn).

我还有另一种文本搜索方式,使用:
$('.dataTable').dataTable().fnFilter(
    searchVal,
    4,
    false,
    true
);

这个也只在一个表格中起作用,而不像我期望的那样在所有表格中都有效。

谢谢。


1
可能是重复的问题:如何在一个页面中放置多个jQuery数据表? - Tats_innit
这不是重复的问题,OP正在询问在每个DataTables实例中使用隔离作用域的自定义过滤器。 - Ragen Dazs
1个回答

1

你有注意到这个吗 范围过滤(日期)

显示细节 在特定日期范围内过滤列。请注意,您可能需要更改输入中的ID以及开始和结束日期所在的列。

$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
    var iFini = document.getElementById('fini').value;
    var iFfin = document.getElementById('ffin').value;
    var iStartDateCol = 6;
    var iEndDateCol = 7;

    iFini=iFini.substring(6,10) + iFini.substring(3,5)+ iFini.substring(0,2)
    iFfin=iFfin.substring(6,10) + iFfin.substring(3,5)+ iFfin.substring(0,2)       

    var datofini=aData[iStartDateCol].substring(6,10) + aData[iStartDateCol].substring(3,5)+ aData[iStartDateCol].substring(0,2);
    var datoffin=aData[iEndDateCol].substring(6,10) + aData[iEndDateCol].substring(3,5)+ aData[iEndDateCol].substring(0,2);

    if ( iFini == "" && iFfin == "" )
    {
        return true;
    }
    else if ( iFini <= datofini && iFfin == "")
    {
        return true;
    }
    else if ( iFfin >= datoffin && iFini == "")
    {
        return true;
    }
    else if (iFini <= datofini && iFfin >= datoffin)
    {
        return true;
    }
    return false;
});

还有

范围过滤(数字) 根据数值列的特定值在两个给定数字之间进行过滤。请注意,您可能需要更改 输入 和包含数值的id。


嗨,谢谢你。这基本上就是我所做的,它仅适用于一个表而不是一系列表格。点赞因为它有效,但仍无法解决我的问题。正如我在评论中看到的那样,似乎我可以在.each()中实现这个功能。我现在要测试一下。再次感谢! - PedroHCan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接