当DataTable
在JSON
来电中返回0时,尝试显示消息“无数据显示”(使用Ajax
时)。但无法弄清楚如何。
尝试
$("#noData").show();
使用 if 语句但不起作用。
<div id="noData" class="grid_4 alpha" style="display: none;">No data to display</div>
以下是绘制表格的代码。
function FillTable() {
var title = plotData.title + ' / ' + YMLabel(plotData.startYM) + " - " + YMLabel(plotData.endYM);
if (table != null) {
table.fnDestroy(true);
}
$("#tabContainer").empty()
.html('<h1 class="pageTitle">' + title + '</h1><img src="../styles/loading.gif">');
$.ajax({
url: "ajax_incidents_table.asp",
type: "POST",
data: {
startYM: plotData.startYM,
endYM: plotData.endYM
},
timeout: 10000,
success: function (ajaxData) {
var htmlstr = '<h1 class="pageTitle">' + title + '</h1><table id="table"></table>';
$('#tabContainer').html(htmlstr);
var tabSettings = {
sDom: 'rt',
bPaginate: false,
sScrollX: "100%",
bScrollCollapse: true,
bFilter: false,
aoColumns: ajaxData.aoColumns,
aaData: ajaxData.aaData
}
table = $('#table').dataTable(tabSettings);
SetTooltips()
ShowDescription();
},
error: function (x, t, m) {
alert('error: ' + m);
$('#tabContainter').html("<h3>An error has occured. (" + t + " / " + m + ")</h3>");
}
});
答案 0 :(得分:0)
0。否则,error
函数将执行,并会提示用户输入错误。
所以你可以尝试一下:
success: function (data) {
if(data == 0) { // if the result is 0
$('#noData').show(); // show the div..
}
}
这样,您可以在成功函数中检查结果的值。
其次,您可以尝试在浏览器的“检查器”的“网络”选项卡中检查网络请求。按 F12 然后转到“网络”选项卡,检查与请求相关的所有信息,然后根据条件对其进行编码。
答案 1 :(得分:0)
客户端代码肯定需要@Afzaal Ahmed Zeeshan在上面回答的内容。
if(ajaxData.aaData == null)
{
$('#noData').show();
}
除此之外,实际问题出现在Ajax
部分。当数据库查询返回零记录时,需要传递以下内容。
json=json&",""aaData"":[null]}"
客户端代码期待json格式的数据。但是我试图使用Response.Write
显示NO DATA的消息,该消息将文本(字符串)发送到main-asp文件并且不是Jason
格式化的。