jQuery DataTable日期范围搜索

时间:2016-06-13 16:21:19

标签: javascript jquery datatables

我试图为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 个答案:

答案 0 :(得分:0)

您需要致电

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

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

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