未捕获的TypeError:在DATATABLE HTML5 PDF导出中无法读取未定义的属性“body”

问题描述 投票:0回答:1

我的代码工作正常但当我尝试在PDF导出的文档上添加消息时显示消息

Uncaught TypeError: Cannot read property 'body' of undefined
    at Object.customize (<anonymous>:97:42)
    at s.action (buttons.html5.min.js:27)
    at q (dataTables.buttons.min.js:13)
    at HTMLButtonElement.<anonymous> (dataTables.buttons.min.js:14)
    at HTMLButtonElement.dispatch (jquery-3.3.1.min.js:2)
    at HTMLButtonElement.y.handle (jquery-3.3.1.min.js:2)

如果我不添加下一行qazxsw poi工作是伟大的,但一旦我添加它显示我的错误。

我的代码......

**message: '__MESSAGE__'**

寻找很多帖子它是添加自定义消息的方式,为什么只是在添加该行后显示该错误,似乎是一个干净的代码。谢谢你的帮助!!!

jquery html5 pdf datatable export
1个回答
0
投票

根据这个<script type="text/javascript"> $('#myTable').DataTable({ dom: 'lBfrtip', buttons: [ { extend: 'excel', filename: 'reporte' }, { **message: '__MESSAGE__',** extend: 'pdfHtml5', orientation: 'landscape', pageSize: 'LEGAL', title: 'Reporte de Documentos Emitidos', header:true, exportOptions: { columns: [ 2, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15 ] }, customize: function (doc) { var rowCount = doc.content[1].table.body.length; for (i = 1; i < rowCount; i++) { doc.content[1].table.body[i][0].alignment = 'center'; doc.content[1].table.body[i][1].alignment = 'center'; doc.content[1].table.body[i][2].alignment = 'center'; doc.content[1].table.body[i][3].alignment = 'center'; doc.content[1].table.body[i][6].alignment = 'right'; doc.content[1].table.body[i][7].alignment = 'right'; doc.content[1].table.body[i][8].alignment = 'right'; doc.content[1].table.body[i][9].alignment = 'right'; doc.content[1].table.body[i][10].alignment = 'center'; }; doc.content.forEach(function(content) { if (content.style == 'message') { content.text = 'this is a late created message' } }); } } ] }); ,你应该使用的关键应该是

reference

要么

messageTop

编辑:这是一个更新的工作JS小提琴messageBottom 您正在查找的内容索引是错误的我将它从https://jsfiddle.net/to068zv7/1/更改为doc.content[1].table.body

doc.content[2].table.body不包含doc.content[1]对象,而是包含你的table对象

© www.soinside.com 2019 - 2024. All rights reserved.