的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
老實說,'搜索':'applied'是你最好的選擇,尤其是當你進入分頁時。你可以看看這個其他的想法,但如果你真的想在sum()函數中添加一些東西:https://stackoverflow.com/questions/12915988/retrieving-row-data-after-filtering-jquery-datatables – Woodrow
I同意你@Woodrow。如果你想把這個作爲答案... – Pagotti