如何使用TableTools从DataTables导出时排除某些列和行。
| id | data | date | Status |
|----|-----------|----------------|--------|
| 1 | some data | october 2014 | ok |
| 2 | some data | september 2014 | |
我想要隐藏状态列和没有状态为" ok"的行。 任何解决这个问题的技巧都将不胜感激。
答案 0 :(得分: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]
- &gt;仅导出id
,data
和date
列
fnInit
- &gt;在初始化时能够对按钮执行某些操作
$(nButton).on('mousedown', function() {
- &gt;过滤状态为&#34;确定&#34;
$(nButton).on('mouseup', function() {
- &gt;取消了&#34; ok&#34;导出完成时过滤
oSelectorOpts : { filter: 'applied', order: 'current' }
- &gt;将tabletools设置为仅按照它们为用户显示的顺序导出过滤的行。
使用mousedown
/ mouseup
的原因是上述内容不适用于click
或按钮功能fnComplete
。
将此功能添加到您的所有按钮,例如xls
,csv
,pdf
和print
。我认为 print
按钮存在问题。据我所知,它早先出现了问题&#34;按照按钮说明。不知道最近是否已修复此问题。