jqGrid处理http错误和服务器端错误
jqGrid处理http错误和服务器端错误
作者:ldzyz007 | 2011/10/26 16:11:10 | 阅读46次
我们知道,jqGrid从服务器端获取数据时,用的是ajax请求,如果请求过程中发生http错误(如后台服务器超时未响应、该url404)或者服务器端方法发生异常或错误,默认设置下的jqGrid是不会有任何提示信息的,并且也不会显示任何数据,连浏览器的javascript错都没有。
其实对jqGrid做一下设置即可让错误显示给前台。
1.HTTP错误
loadError事件就是专门处理这类错误的,我们可以这么写:
$("#list").jqGrid({url:'example.php',...loadError: function(xhr,status,error){alert(status + " loading data of " + $(this).attr("id") + " : " + error ); },...});
如果觉得每个grid都这么设置太麻烦,可以设置覆盖jqGrid的全局参数:
$.extend($.jgrid.defaults, {...loadError: function(xhr,status,error){alert(status + " loading data of " + $(this).attr("id") + " : " + error ); },...});
我们还可以统一设置ajax请求失败时,报错误信息,这样就不用改动jqGrid的设置了:
$(document).ajaxError(function(e,xhr,opt){alert(xhr.statusText + " requesting " + opt.url);});
2.服务器端错误
这种情况,需要在服务器端处理错误或异常信息,将其包装成json格式数据:
{"userdata":"xxxx"}
顺便贴一下正确时的数据:
{"total": "xxx","page": "yyy","records": "zzz","rows" : [{"id" :"1", "cell" :["cell11", "cell12", "cell13"]},{"id" :"2", "cell":["cell21", "cell22", "cell23"]},...]}
jqGrid需这样设置:
$("#list").jqGrid({url:'example.php',...loadComplete: function(){alert($(this).getGridParam('userData'));},...});
以上各个示例显示信息都是用的alert()方法,如果觉得对用户不够友好,可考虑借助其他的方式,比如实现一个浮动消息提示框。
相关推荐
周公周金桥 2020-09-06
大象从不倒下 2020-07-31
AlisaClass 2020-07-19
MaureenChen 2020-04-21
xingguanghai 2020-03-13
teresalxm 2020-02-18
木四小哥 2013-05-14
SoShellon 2013-06-01
Simagle 2013-05-31
羽化大刀Chrome 2013-05-31
waterv 2020-01-08
LutosX 2013-07-29
vanturman 2013-06-27
wutongyuq 2013-04-12
luoqu 2013-04-10
today0 2020-09-22
89520292 2020-09-18
bigname 2020-08-25