2017-06-15 6 views
0

カラムの日付に基づいてデータテーブルをフィルタリングしようとしていますが、データのフィルタリングがうまくいったとしてもテーブルのUIは私はここで何が欠けているのですか? official documentationからテーブルのデータをフィルタリングしてテーブルの行を変更しないでください

var filterTable = hpDataTable. 
        column(1). 
        data(). 
        filter(function (value, index, api) { 

        var today = new Date(); 
        today.setHours(0, 0, 0, 0); 

        var dateFromColumn = moment(value).toDate(); 
        return dateFromColumn < today ? false : true; 

       //there is no affect on the table ui. 
       }).draw(); 

       //filterTable returns the data I want. 
       console.log(filterTable); 
      } 
+0

はあなたのコードのjsフィドルを置くことができますか?ここにコードを表示することもできます。 –

答えて

1

: 私はこのコードを持っている

このメソッドは、データテーブル内のレコードを検索するために使用され search()と混同すべきではない

からfilter()方法が変化しない、すなわち、 DataTableに表示される行。

代わりにcustom filteringを実装する必要があります。例えば

:それはエッセイのデバッグになるよう

var today = new Date(); 
today.setHours(0, 0, 0, 0); 

// Apply search criteria 
$.fn.dataTable.ext.search.push(
    function(settings, data, dataIndex) { 
     var dateFromColumn = moment(data[1]).toDate(); 
     return dateFromColumn < today ? false : true; 
    } 
); 

// Redraw table 
hpDataTable.draw(); 

// Retrieve data 
var data = hpDataTable.column(1, { search: 'applied' }).data(); 

// Restore search criteria 
$.fn.dataTable.ext.search.pop(); 
+0

実際に検索しているときのカスタムフィルタリング... –

+0

@ OffirPe'er、DataTableの用語フィルタではデータは返されますがUIは変更されません。検索でUIが変更され、[selector modifiers](https ://datatables.net/reference/type/selector-modifier)。 –

+0

期待どおりに動作し、thx! –

関連する問題