2017-06-16 24 views
0

的jsfiddle對於這個問題,如何獲得搜查行:http://jsfiddle.net/nhg5ej4s/從數據表的API函數調用的上下文

我用的是15年1月10日版本的DataTable的。

我已經註冊了API這個sum()功能:

$.fn.dataTable.Api.register('sum()', function() { 
    var data = this.flatten().toArray(); 
    return data.reduce(function (a, b) { 
     return (a * 1) + (b * 1); // cast strings 
    }, 0); 
}); 

當我需要在頁腳使用此功能,例如,在drawCallback選項更新彙總(見JSFiddle的情況下):

var table = $('#example').DataTable({ 
    drawCallback: function (settings) { 
     var api = this.api(); 
     $(api.column(5).footer()).html('Total: ' + api.column(5).data().sum()); 
    } 
}); 

該函數可以工作,但是當我通過任何搜索對錶應用過濾器時,傳遞給sum()的值將採用所有行,而不是通過搜索進行過濾。

有一種方法可以識別sum()函數內的搜索上下文嗎?

PS:在寫這個問題,我意識到,我可以通過在列調用一個選項,將只過濾搜索行:api().column(5, {'search': 'applied'}).data().sum()但我決定把問才知道,如果有一種方法可以做到這裏面代碼sum()JSFidlle with this update

+1

老實說,'搜索':'applied'是你最好的選擇,尤其是當你進入分頁時。你可以看看這個其他的想法,但如果你真的想在sum()函數中添加一些東西:https://stackoverflow.com/questions/12915988/retrieving-row-data-after-filtering-jquery-datatables – Woodrow

+0

I同意你@Woodrow。如果你想把這個作爲答案... – Pagotti

回答

相關問題