据我所知,没有一个“神奇”的选项可以解决这两个问题。解决每个问题的选项似乎相互排斥(如果有人能反驳这一点,那就太好了)。但我找到了一个解决方案(为了避免冗余代码,我只为复制按钮显示它):
var table = $("#example").DataTable({
dom: 'T<"clear">lfrtip',
tableTools: {
sSwfPath: "http://cdn.datatables.net/tabletools/2.2.3/swf/copy_csv_xls.swf",
aButtons: [
{
sExtends : "copy",
mColumns : [0, 1, 2],
fnInit : function( nButton, oConfig ) {
$(nButton).on('mousedown', function() {
table.column(3).search('ok').draw();
});
$(nButton).on('mouseup', function() {
table.column(3).search('').draw();
});
},
oSelectorOpts : { filter: 'applied', order: 'current' },
}
]}
});
说明:
mColumns : [0, 1, 2]
-> 仅导出id
,data
和date
列
fnInit
-> 能够在按钮初始化时对其进行操作
$(nButton).on('mousedown', function() {
-> 过滤状态为“ok”的行
$(nButton).on('mouseup', function() {
-> 导出完成后取消设置“ok”过滤器
oSelectorOpts : { filter: 'applied', order: 'current' }
-> 将 tabletools 设置为仅按照用户显示的顺序导出过滤的行。
mousedown
使用/的原因mouseup
是上面的click
或按钮功能不起作用fnComplete
。
将此功能添加到所有按钮,例如xls
、csv
和。我认为按钮有问题。据我所知,它早先按照按钮说明出现了“问题”。不知道最近有没有修复。pdf
print
print