2013-01-04 62 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; 
     } 
    );