在jQGrid中报告用户错误

时间:2009-11-02 09:00:15

标签: javascript jquery jquery-ui jqgrid

我有一个jqgrid表,通过XML通过apache2 web服务器查询MySQL DBMS。

有时,只要数据库服务器关闭或服务器端程序遇到 某种崩溃,jqgrid只是冻结等待XML数据到达。

在这种情况下,我最好让jqgrid用户知道这件事,从而显示一条描述非常类型的温和信息。

我想知道是否存在针对此类情况的任何jqgrid选项

我正在使用:

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

谢谢,

3 个答案:

答案 0 :(得分:1)

如果对于jqgrid,您使用的function数据类型为jQuery.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.
      }
   });
},

答案 1 :(得分:1)

我回答了关于使用jqgrid报告(服务器端)错误的类似问题。

How can I get JQGrid to recognize server sent Errors?

答案 2 :(得分:0)

您可以在jqGrid定义中使用loadError事件(请参阅documentation)。 E.g:

//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)
    }