jQuery dataTables - TableTools:导出时隐藏行和列
Posted
技术标签:
【中文标题】jQuery dataTables - TableTools:导出时隐藏行和列【英文标题】:jQuery dataTables - TableTools: hide row and columns while export 【发布时间】:2015-02-02 04:35:00 【问题描述】:如何在使用 TableTools 从 DataTables 导出时排除某些列和行。
| id | data | date | Status |
|----|-----------|----------------|--------|
| 1 | some data | october 2014 | ok |
| 2 | some data | september 2014 | |
我想隐藏状态列和状态不为“ok”的行。 任何解决此问题的提示将不胜感激。
【问题讨论】:
【参考方案1】:据我所知,没有一个“神奇”的选项可以解决这两个问题。解决每个问题的选项似乎相互排斥(如果有人能反驳这一点,那就太好了)。但是我找到了一个解决方案(为了避免冗余代码,我只为复制按钮显示它):
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
按钮有问题。据我所知,它早先按照按钮说明出现了“问题”。不知道最近有没有解决。
【讨论】:
以上是关于jQuery dataTables - TableTools:导出时隐藏行和列的主要内容,如果未能解决你的问题,请参考以下文章
请教jquery一个页面渲染两个datatables总是出现其中一个table加载不成功导致
jquery plugins —— datatables 搜索后汇总