如何解决DataTables.net导出按钮未生成Excel文件
单击Datatables.net的“导出”按钮时出现以下错误。
以下是我的代码
$.ajax({
type: "POST",url: uri,data: JSON.stringify(args),contentType: "application/json;charset=utf-8",success: function (data,status,xhr) {
//alert("The result is : " + data);
if (!data.d) {
$("#gvCurr").DataTable();
}
else {
$("#gvCurr").DataTable({
"aaData": JSON.parse(data.d),"bDestroy": true,dom: 'Bfrtip',deferRender: true,"bLengthChange": false,"bPaginate": false,buttons: [
{
extend: 'excel',text: '<i class="fas fa-file-excel"></i> Export',className: "btn btn-primary",filename: 'DomesticInvoiceReport - ' + moment().format("DD-MMM-YYYY"),}
],"columns": [
{ "data": "ProjectNo" },{ "data": "CountryName" },{ "data": "StateName" },{ "data": "SectorName" },{ "data": "CoOrdName" },{ "data": "Curr1" },{ "data": "InvoiceNo_1" },{ "data": "InvoiceDate_1" },{ "data": "Month_1" },{ "data": "Year_1" },{ "data": "TotalFee_1" },{ "data": "EscalationAmt_1" },{ "data": "CurrentOPEAmt_1" },{ "data": "CGSTPerc" },{ "data": "SGSTPerc" },{ "data": "TotalTaxPerc_1" },{ "data": "TotalTaxAmt_1" },{ "data": "CurrentInvoiceAmt_1" },{
mRender: function (data,type,row) {
if (row.IsWithheld_1 == "" || row.IsWithheld_1 == 0)
return 'No';
}
},{ "data": "WithheldAmt_1" },{ "data": "BalanceInHandUptoThisInv_1" }
],"order": [[0,"asc"]]
});
}
$("#entry").hide();
$("#list").show();
},error: function (xhr) {
alert(xhr.responseText);
}
});
如果您看到的是int代码,如果我将{“ data”:“ Year_1”}之后的列注释掉,则它正在生成excel文件,如果在此之后包含列,则会给我显示以下错误附加的图像。因此,这不是代码错误或js文件顺序错误的问题
我已将这些设置包含在web.config中
<httpRuntime targetFramework="4.7.2" maxRequestLength="2147483647" requestLengthDiskThreshold="2097152" executionTimeout="240" />
<jsonSerialization maxJsonLength="2147483644" />
检索时正确显示记录。在导出时,它给出了错误。我不确定我在这里想念什么。
解决方法
我相信您有这个问题:
{
mRender: function (data,type,row) {
if (row.IsWithheld_1 == "" || row.IsWithheld_1 == 0)
return 'No';
}
},
- 渲染回调适用于列定义,它们不能单独存在
- 您必须返回一个值,如果返回
undefined
,则会得到“ trim不是函数”
正确的方法是
{
data: "IsWithheld_1",render: function(data,row) {
return (data === '' || data == 0) ? 'No' : ''
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。