2013-01-04 102 views
2

我想創建一個可應用於多個數據表的日期範圍過濾器。我遇到的問題是,即使我通過 作爲一個對象數組,我的aaData值通過過濾器函數它是在一個數組中。這不會工作,因爲在我的應用程序中,數組中的日期值的索引是不同的,我寧願能夠通過像這樣的屬性上的點符號來做到這一點。數據表按屬性過濾數組對象索引

$.fn.dataTableExt.afnFiltering.push(
     function(oSettings, aData, iDataIndex) { 
      var iMin = document.getElementById('start-datepicker').value; 
      var iMax = document.getElementById('end-datepicker').value; 

      // Create Minimum Date Object 
      var iMinDate = new Date(iMin); 

      // Create Maximum Date Object 
      var iMaxDate = new Date(iMax); 

      // Create Date Column Object 
      var iDateStr = aData.date; 
      var iDate = new Date(iDateStr); 

      if (iMinDate < iDate && iDate < iMaxDate) 
      { 
       return true; 
      } 
      return false; 
     } 
    ); 

我的初始化與此類似http://live.datatables.net/iyavud/7/edit#source

回答

1

這可能是一個黑客,但它似乎下班通過oSettings.aoData對象和iDataIndex參數數據。

$.fn.dataTableExt.afnFiltering.push(
     function(oSettings, aData, iDataIndex) { 
      var iMin = document.getElementById('start-datepicker').value; 
      var iMax = document.getElementById('end-datepicker').value; 

      // Create Minimum Date Object 
      var iMinDate = new Date(iMin); 

      // Create Maximum Date Object 
      var iMaxDate = new Date(iMax); 

      // Create Date Column Object 
      var rowData = oSettings.aoData[iDataIndex]._aData; 
      var iDateStr = rowData.date; 
      var iDate = new Date(iDateStr); 

      if (iMinDate < iDate && iDate < iMaxDate) 
      { 
       return true; 
      } 
      return false; 
     } 
    );