我的表中有一列称为“ Info”,其中我有一段代码来渲染该列,如果字符串长于20个字符,它将缩短它,并在字符串末尾添加“ ...”。这是一个示例:
{
targets: 4,
"data": "info",
"render": function(data, type, row, meta) {
if(type === 'export') {
return data;
}
if (data != null) {
return type === 'display' && data.length > 20 ?
'<p data-toggle="tooltip" title="' + data + '">' + data.substr(0, 20) + '...</p>' : data;
} else {
return data;
}
}
},
这里的问题是当我生成PDF时,该列中的数据用'...'缩短了,是否有完整的数据(完整的字符串)在pdf,excel等中,而在表(列)中却缩短了。我总是可以再增加一列,使其不可见,然后将该列放入pdf中。还有其他办法吗?
答案 0 :(得分:1)
在您的render
函数中,您正在正确查看type
是否为export
:
if(type === 'export') {
return data;
}
但是,即使对于PDF或excel,默认也不是export
类型。您需要将变量orthogonal
添加到导出按钮声明对象。然后将其作为render
传递给type
函数
buttons: [
{
extend: 'excel',
exportOptions: { orthogonal: 'export' }
},
{
extend: 'pdf',
exportOptions: { orthogonal: 'export' }
}
]
此处有关正交的更多信息: https://datatables.net/extensions/buttons/examples/html5/outputFormat-orthogonal.html