#c# #jquery #datatables-1.10
#c# #jquery #таблицы данных -1.10
Вопрос:
Я получаю следующую ошибку, когда нажимаю на кнопку экспорта 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);
}
});
если вы видите в коде, если я закомментирую столбцы после { «data»: «Year_1» } , он генерирует файл Excel, и если я включу столбцы после этого, это выдаст мне ошибку, показанную на прилагаемом изображении. Таким образом, это не проблема неправильного кода или неправильной последовательности файлов js
Я включил эти настройки в web.config
<httpRuntime targetFramework="4.7.2" maxRequestLength="2147483647" requestLengthDiskThreshold="2097152" executionTimeout="240" />
<jsonSerialization maxJsonLength="2147483644" />
При извлечении записи отображаются правильно. Во время экспорта выдает ошибку. Я не уверен, чего мне здесь не хватает.
Ответ №1:
Я полагаю, что у вас есть эта проблема :
{
mRender: function (data, type, row) {
if (row.IsWithheld_1 == "" || row.IsWithheld_1 == 0)
return 'No';
}
},
- обратные вызовы рендеринга применяются к определению столбца, они не могут оставаться одни
- Вы должны вернуть значение, если вы вернетесь
undefined
, вы получите «обрезка не является функцией«
Правильный способ
{
data: "IsWithheld_1",
render: function(data, type, row) {
return (data === '' || data == 0) ? 'No' : ''
}
}
Комментарии:
1. ДА. Это была проблема. Я изменил это, и это сработало.