DataTables不保存日期范围搜索的状态

时间:2018-06-12 19:02:50

标签: datatables datatables-1.10

我正在使用数据表来显示不同类型的事件列表。除了我需要的默认全局文本搜索 1.按事件类型过滤列表 2.按日期范围过滤列表(仅显示今天 - >无穷大) 3.保存当前会话的表状态。

状态按预期之外保存,以便日期范围搜索始终重置。我错过了什么或自定义搜索功能超出了状态保存的范围?这是jQuery中的相关代码:

拳头我通过提供的方法添加自己的搜索功能。除了状态未保存

之外,这有效
// Extend search() 
var threshold_timestamp = xxxxxxxxxxxx // set for beginning of today)
$.fn.dataTable.ext.search.push(
    function( settings, data, dataIndex) {
        var timestamp = parseInt(data[1]); // event date timestamp
        if (timestamp > threshold_timestamp) {
            return true;
        }
        return false;
    }
);

然后我为用于在事件类型选项('','Event','Sports','Dance'...)和按钮用户之间切换的select添加一个监听器来打开/关闭日期范围过滤器

$('#filter-by-type').on('change', function() {
    table.columns(0).search( $(this).val() ).draw();
}); 

$('#dt-history').on('click', function() {
    // Logic to toggle threshold_timestamp between 0 or value
    table.draw();
});

然后我调用DataTables

var table = $('#example').DataTable( {
    ajax: "datasource.json",
    stateSave : true,
    stateDuration: -1,
    columns: [
        { data: "type"}, //str as 'Sport','Dance'  
        { data: "date"}  // int as 1528572000      
    ]
});

我设法侧身划过头,并使用localstorage“保存日期搜索”,但这是一个黑客攻击。在页面加载时,我触发按钮单击以执行搜索,因此最初表格似乎为空,出现“表格中没有数据”消息,然后显示过滤结果。作为第二个黑客,我将压制该消息,所以当真的没有数据时...将没有消息:(

0 个答案:

没有答案