2015-04-23 85 views
1

我正在使用Datatable 1.10.4。Datatable:在過濾器上添加回調函數並獲取過濾數據數組

我發送數據數組表來填充表, 初始化如下:

table = $('#dashboard-user-list-table').dataTable({ 
    "data":window.MyApp.Model.userModel.getUsers(), //sourced JS Array 
    "iDisplayLength": 4, 
    --- 
    --- 
}); 

我想補充一個onfilter回調函數,並得到過濾後的數據陣列 ,並做一些東東。

即使沒有回調函數,有什麼辦法可以得到一個過濾數據數組? (基本上我需要得到我通過的頁面上顯示的源數據所在的數組)

Datatables插件是否允許我這樣做?如果是這樣,我沒有發現任何直觀的文檔。

你能告訴我怎麼做嗎?

參考JSFIDDLE

+0

我希望它的'.dataTable'不''.DataTable' – naveen

回答

2

我知道你是想過濾的數據作爲數組當您執行搜索。
如果是這樣,試試這個。

var table = $('#dashboard-user-list-table').dataTable({ 
    --- 
    --- 
}); 
$('##dashboard-user-list-table').on('search.dt', function() { 
    var api = table.api(); 
    //uppercase used for case insensitive search 
    var searchTerm = api.search().toUpperCase(); 
    var filteredData = api.data() 
     .filter(function (value, index) { 
      return value.toString().toUpperCase().indexOf(searchTerm) !== -1; 
     }).toArray(); 
    console.log(filteredData); 
}); 

工作小提琴:http://jsfiddle.net/codeandcloud/a8b3ttf7/

免責聲明:有可能是一個更簡單的方法。我不是那麼多的datatables.net專家

+0

我從源JS數據生成表。在這裏你已經硬編碼了 – maaz