2014-03-19 68 views
0

JSONAjax調用中返回0時,試圖顯示消息「無數據顯示」(使用DataTable時)。但不知道如何。如何在Ajax函數返回時顯示消息0記錄

試圖

$("#noData").show(); 

如果聲明,但沒有奏效。

<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

如果沒有看到'ajaxData'的結構就很難回答這個問題,但我假設你可以檢查'ajaxData.aaData'的長度。你試過的if語句不起作用是什麼? –

+0

http://jsfiddle.net/LFuQc/ 這裏是ajaxData'結構體'。 – shaz

回答

0

只有當請求返回200(成功)時纔會返回0。否則,error函數將執行並提示用戶有關錯誤。

所以,你可以試試這個:

success: function (data) { 
    if(data == 0) { // if the result is 0 
    $('#noData').show(); // show the div.. 
    } 
} 

這種方式,您可以檢查結果在成功函數值。

其次,您可以嘗試在瀏覽器的檢查器的網絡選項卡中檢查網絡請求。按F12,然後轉到網絡選項卡,檢查與請求相關的所有信息,然後根據條件對其進行編碼。

+0

這是我之前嘗試過的,沒有顯示任何消息。數據爲0我知道是因爲我試圖在服務器端記錄= 0時打印出 DebugWrite(「無數據顯示」) 。 – shaz

+0

你確定唯一的回報是:'return 0;'?如果不是,那麼這將不起作用。因爲結果必須是唯一的特徵0 ... –

+0

我想我在服務器端代碼上做錯了。當我得到SQL返回0記錄,然後我停止在那裏運行代碼。正如你可以檢查它http://jsfiddle.net/LFuQc/ 行45到51.我想這裏JSON甚至沒有得到創建和傳遞。對此很抱歉很少了解。 – shaz

0

客戶端代碼肯定需要@Afzaal Ahmed Zeeshan的回答。

if(ajaxData.aaData == null) 
{ 
    $('#noData').show(); 
} 

隨着實際問題出現在Ajax部分。當數據庫查詢返回零記錄時,需要傳遞以下內容。

json=json&",""aaData"":[null]}" 

客戶端代碼期待json格式的數據。但我試圖使用Response.Write來顯示無數據的消息,該消息向main-asp文件發送了一個文本(字符串),並且該格式不是Jason

相關問題