在将数据从web api提取到表中时,我收到一条错误,即Uncaught TypeError:无法读取未定义的属性'indexOf'。 web api我已经检查过,它返回了数据。
$("#divTable").empty();
$('#divTable').GenerateTable({
tableID: "datatable1",
//order: [[ 1, 'asc' ]],
sourceDataUrl: ApiPath + "Dashboard/GetRegulatoryTable?Type=" + type + "&Subject=" + subject + "&Month=" + month + "&Year=" + year,
autoColHeader: {
enable: "false",
colHead: ["Update ID", "Month", "Year", "Subject", "Description", "Document Path", "Created By", "Created Date"]
},
disableColindex: "[]",
});
if ($("#datatable1").html().indexOf("No data available", 1) > 1) { //here its throwing an error
swal("", "No Data Available", "warning");
$("#divTable").empty();
}
else {
$(".cutsdata").DataTable();
$('#btnDownload').show();
}
答案 0 :(得分:0)
$('#divTable').GenerateTable({
tableID: "datatable1",
//order: [[ 1, 'asc' ]],
sourceDataUrl: ApiPath + "Dashboard/GetRegulatoryTable?Type=" + type + "&Subject=" + subject + "&Month=" + month + "&Year=" + year,
autoColHeader: {
enable: "false",
colHead: ["Update ID", "Month", "Year", "Subject", "Description", "Document Path", "Created By", "Created Date"]
},
disableColindex: "[]",
});
在HTML中生成一个表 - 但它几乎肯定会以异步方式生成(假设提到sourceDataUrl
)。
因此,当:
if ($("#datatable1").html().indexOf("No data available", 1) > 1) { //here its throwing an error
执行,GenerateTable
尚未完成其工作(其中一部分是生成ID为datatable1
的表)。
要解决此问题,您需要延迟执行if
语句,直到GenerateTable
完成其工作。 GenerateTable
可能有某种形式的回调(例如onsuccess
),表示该表已插入HTML中。