微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 如何在jqGrid中显示之前“预处理”ajax响应

我正在使用jqgrid显示数据库查询的结果.执行查询然后将结果格式化为 XML以供jqgrid使用的PHP脚本也会进行一些错误检查. (例如,它可能会验证日期以确保它们的格式正确,并且开始日期在结束日期之前.)这些类型的错误被格式化为XML,但格式与成功查询不同.

我想要做的是拦截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;
                }
            }
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐