我正在使用jqGrid来显示数据库查询的结果.执行查询然后将结果格式化为 XML以供jqGrid使用的php脚本也会进行一些错误检查. (例如,它可能会验证日期以确保它们的格式正确,并且开始日期在
我想要做的是拦截ajax调用的结果并根据结果是否包含这些自定义错误之一来处理它.如果没有错误,那么我想在jqGrid中加载结果.如果出现错误,我只会在没有网格的页面上显示(因为网格设置为不同数量的列).
我正在寻找的是如何进行的正确方法(不一定是实际的代码). (我的问题不是如何解析XML响应,而是如何拦截它以便我能够解析它.)我曾希望使用像gridComplete或loadComplete这样的jqGrid事件,但这些似乎在网格已经加载后触发.
这是我的最终解决方案.我的服务器脚本以xml格式返回自定义错误:
<row>
<code>problem</code>
<description>End date is before start date.</description>
</row>
所以我使用@Oleg建议的ajaxGridOptions技术来检查错误标记,如果找到,则显示错误消息:
ajaxGridOptions:
{dataFilter:
function(data,dataType){ // preprocess the data
if ( $(data).find("code").text() == 'problem' ) { // check for an error in the result
$("#list").jqGrid('GridUnload');
$("#errormsg").text( $(data).find("description").text() );
}else{
return data;
}
}
}
