2016-06-13 163 views
1

我試着爲jQuery DataTable添加日期範圍搜索。日期範圍過濾器正常工作,正常搜索所有列/行也正常工作。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; 
    } 

}); 

回答

0

你需要調用

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

當您更改的時間範圍。我不知道您的日期選擇器插件,但您需要將dataTable.draw()電話添加到datepicker的onChange之類的內容中。

還有一個類似的例子https://datatables.net/examples/plug-ins/range_filtering.html

+0

它不起作用。我創建了使用ASP.NET C#引用Datatable.JS的表!這可能是一個問題,我不能訪問這個東西。 –