2009-11-02 36 views
2

我有一個jqgrid表通過XML通過apache2 web服務器查詢MySQL DBMS。在jQGrid中報告用戶錯誤

有時每當DB服務器關閉或服務器端程序遇到時 某種程度的崩潰jqgrid只是凍結等待XML數據到達。

在這種情況下,我最好讓jqgrid用戶意識到這個問題,並因此顯示一個溫和的消息來描述annomly的類型。

我想知道有沒有具體的這種情況下任何的jqGrid選項

我使用:

jquery-1.3.2 
jquery-ui-1.7.2 
jquery.jqGrid-3.5.3 

感謝,

回答

1

如果用於jqGrid的您正在使用的數據類型functionjQuery.agax然後將您的邏輯放入錯誤處理程序。唯一的問題是,您必須手動填充網格,並且沒有「加載」提示,儘管您可以創建一個提示。

本示例取自調用ASP.NET WCF服務時使用的常用模式,我的結果對象包含分頁器的int屬性和行集合,這在myGrid.setGridParams中定義。

datatype: function(postdata) { 
    $.ajax({ 
     type: "POST", 
     url: 'SomeService.svc/SomeGetMethod', 
     data: JSON.stringify(postdata), 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function(res) { 
     myGrid.clearGridData(); 
     for (var i = 0; i < res.d.rows.length; i++) { 
      myGrid.addRowData(i + 1, res.d.rows[i]); 
     } 
     myGrid.setGridParam({ 
      page: postdata.page, 
      lastpage: res.d.total, 
      records: res.d.records, 
      total: res.d.total 
     }); 
     myGrid.each(function() { 
      if (this.grid) this.updatepager(); 
     }); 
     }, 
     error: function (XMLHttpRequest, textStatus, errorThrown) { 
     // Code to handle error. 
     } 
    }); 
}, 
0

您可以使用jqGrid的定義loadError事件(見documentation)。例如:

//Catch errors 
loadError = function(xhr, textStatus, errorThrown) { 
    var error_msg = xhr.responseText   
    var msg = "Some errors occurred during processing:" 
    msg += '\n\n' + error_msg 
    alert(msg) 
    }