我有可编辑的网格工具栏,其中包含用于编辑添加和删除记录的按钮。
errorTextFormat
,但是如何?)有人可以举例吗?
答案 0 :(得分:4)
你是对的,errorTextFormat是在HTTP错误的情况下获得服务器响应的正确方法,并显示相应的错误消息。
首先,您的服务器必须在HTTP标头中返回带有HTTP error code的响应。然后,您应该将errorTextFormat事件句柄的实现定义为prmEdit
的{{1}},prmAdd
,prmDel
参数的一部分,或者您可以覆盖jqGrid默认设置(请参阅navGrid)。我个人更喜欢通过修改jQuery.jgrid.edit
和jQuery.jgrid.del
来设置here。您可以在以下errorTextFormat中找到相应代码的示例。
old answer函数的确切代码应取决于服务器响应的格式。我在站点内部使用带有WFC的ASP.NET MVC,服务器可以返回JSON编码的字符串响应(如果错误来自我明确抛出的throw new WebFaultException<string> ("my error text", statusCode);
)或某些时候HTML响应。在我errorTextFormat的实现中,我测试了我收到的哪种错误响应并转换服务器响应。这是代码片段:
my.errorTextFormat = function (data) {
var str = data.responseText.substr(0, 1);
var str1 = data.responseText.substr(0, 6).toLowerCase();
if (str === '"') {
var errorDetail = jQuery.parseJSON(data.responseText);
var s = "Fehler: '";
s += data.statusText;
s += "'. Details: ";
s += errorDetail;
return s;
}
else if (str1 === "<html " || str1 == "<html>" ||
data.responseText.substr(0, 169) === '<?xml version="1.0" encoding="utf-8"?>\r\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\n<html ') {
var bodyHtml = /<body.*?>([\s\S]*)<\/body>/.exec(data.responseText)[1];
return bodyHtml; //bodyContents1;
}
else {
var res = "Status: '";
res += data.statusText;
res += "'. Felhercode: ";
res += data.status;
return res;
}
};
jQuery.extend(jQuery.jgrid.edit, {
...
errorTextFormat: my.errorTextFormat
});
jQuery.extend(jQuery.jgrid.del, {
...
errorTextFormat: Testportal.errorTextFormat
});
代码并不完美,但您可以使用它来创建自己的代码。