带有 jqGrid 错误消息的警报
Posted
技术标签:
【中文标题】带有 jqGrid 错误消息的警报【英文标题】:Alert with jqGrid error messages 【发布时间】:2011-11-10 08:35:01 【问题描述】:我希望在加载我的 jqGrid 表时出现错误时收到警报。例如,当 jsonReader 配置不正确时,比如当 repeatitems 为 true 而不是 false 时,U 可以在 Firebug 中看到错误:
ccur is undefined
[Break On This Error] idr = ccur[idn] || idr;
如何在警报中放置这样的错误?我已经尝试过使用loadError
,但是它不起作用,因为它甚至没有被触发。
【问题讨论】:
【参考方案1】:在我看来,您应该只使用 try - catch
块覆盖 jqGrid 代码:
try
// create the grid
$("#list").jqGrid(
// all jqGrid options
);
catch (err)
// display the error message which you want
alert(err);
更新:你说得对,我之前描述的try ... catch (err) ...
在 IE 中只能读取本地数据。如果从服务器获取数据,则异常发生在$.ajax
的success
回调中。确切地说,它发生在addJSONData
或addXmlData
内部,具体取决于您使用的数据类型。要捕获异常,您应该修改 the place 中的 jqGrid 代码。修改后的代码大概如下
success:function(data,st, xhr)
if ($.isFunction(ts.p.beforeProcessing))
ts.p.beforeProcessing.call(ts, data, st, xhr);
try
if(dt === "xml") addXmlData(data,ts.grid.bDiv,rcnt,npage>1,adjust);
else addJSONData(data,ts.grid.bDiv,rcnt,npage>1,adjust);
if(lc) lc.call(ts,data);
if (pvis) ts.grid.populateVisible();
catch (err)
alert(err);
if( ts.p.loadonce || ts.p.treeGrid) ts.p.datatype = "local";
data=null;
if (npage === 1) endReq();
我在the demo测试了jquery.jqGrid.src.js的相应修改版本,显示错误信息。我没有完全重现您描述的错误,因此错误消息与您的情况有些不同。
如果您需要修改后的 jquery.jqGrid.src.js 文件的最小化版本,您可以使用任何 javascript 最小化器自己生成它。例如Microsoft Ajax Minifier 可以免费下载和安装。用法为
ajaxmin.exe jquery.jqGrid.src.js -out jquery.jqGrid.min.js
将生成 jquery.jqGrid.src.js 的新最小化版本,它会比原来的 jquery.jqGrid.min.js 更小。
另一个很好的最小化器在线here。您应该只使用“简单”优化。
【讨论】:
我已经尝试过了,但没有成功。有人告诉我这是因为 jqgrid 代码已经有了很大的 try catch,所以我没有机会做我想做的事。不过我不确定,这就是我发布问题的原因。以上是关于带有 jqGrid 错误消息的警报的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 Firebase Auth 错误消息在 Flutter 中显示自定义警报对话框?
在 jQuery 弹出窗口或 MVC 4 的警报中显示错误消息