jQuery DataTable 日期范围搜索

Posted

技术标签:

【中文标题】jQuery DataTable 日期范围搜索【英文标题】:jQuery DataTable Date Range Search 【发布时间】:2016-10-14 03:54:46 【问题描述】:

我尝试为 jQuery DataTable 添加日期范围搜索。日期范围过滤器工作正常,对所有列/行的正常搜索也正常工作。

我的问题是表(事件)的刷新仅在正常搜索中的更改之后执行。所以我需要一个重绘/重绘/更新表格的事件。

所以我需要调用类似刷新数据表的方法。

这是我当前的代码:

window.onload = function () 
    $(document).ready(function () 
        try 
            var table = $('#MainContent_gridClaim').dataTable();
         catch (Err)  ;
    );

    $('.datepicker').pickadate(
        selectMonths: true, // Creates a dropdown to control month
        selectYears: 15 // Creates a dropdown of 15 years to control year
    );
;


$.fn.dataTable.ext.afnFiltering.push(function (settings, data, indx) 
    //Min Max Document
    var min = document.getElementById("min").value;
    var max = document.getElementById("max").value;
    if (min === "" || max === "") 
        return true;
    

    //Res Min Max
    var resMin = min.split(".");
    var resMax = max.split(".");

    //Min Max Date
    var dMin = new Date(resMin[2],resMin[1],resMin[0],0,0,0,0);
    var dMax = new Date(resMax[2],resMax[1],resMax[0],0,0,0,0);

    var resData = data[5].split(".");
    var resYear = resData[2].split(" ");
    var dJet = new Date(resYear[0], resData[1], resData[0], 0, 0, 0, 0);

    var minSec = dMin.getTime();
    var maxSec = dMax.getTime();
    var actualSec = dJet.getTime();

    if (minSec<=actualSec&&actualSec<=maxSec) 
        return true;
     else 
        return false;
    

);

【问题讨论】:

【参考方案1】:

你需要打电话

$('#MainContent_gridClaim').dataTable().draw();

当您更改日期范围时。我不知道您的日期选择器插件,但您需要将 dataTable.draw() 调用添加到日期选择器的 onChange 之类的内容中。

还有一个类似的例子https://datatables.net/examples/plug-ins/range_filtering.html

【讨论】:

它不起作用。我用 ASP.NET C# 创建了引用 Datatable.JS 的表!这可能是一个问题吗,我无法访问这些东西。

以上是关于jQuery DataTable 日期范围搜索的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jquery Datepicker 进行 PHP MYSQL 日期范围搜索

Jquery插件类似于datable,但根据需要具有ajax分页和服务器端搜索

javascript DataTable日期范围过滤器

jQuery DataTable 日期顺序

Jquery Datatable - 日期排序不适用于月份(相对于日期的月份)

jquery datatable怎么做到筛选