gpt4 book ai didi

jquery - JqG​​rid 形成服务器验证和自定义错误消息

转载 作者:行者123 更新时间:2023-12-01 03:26:01 24 4
gpt4 key购买 nike

我有一个带有工具栏的可编辑网格,其中包含用于编辑添加和删除记录的按钮。

  1. 我想使用我的 asp.mvc 中的服务器端验证在 jqgrid 编辑表单上显示验证消息。 (这可能吗?)
  2. 当应用程序中发生异常时,我想覆盖编辑表单上的消息(内部服务器错误...)。 (这应该是可能的,但我只是不知道如何做到这一点,也许使用 errorTextFormat,但如何?)

有人可以举个例子吗?

最佳答案

你说得对errorTextFormat是在 HTTP 错误时获取服务器响应并显示相应错误消息的正确方法。

首先,您的服务器必须返回带有 HTTP error code 的响应在 HTTP header 中。然后您应该定义 errorTextFormat 的实现事件句柄作为 prmEdit 的一部分, prmAdd , prmDel navGrid的参数或者您可以覆盖 jqGrid 默认设置(请参阅 here )。我个人更喜欢设置errorTextFormat通过修改jQuery.jgrid.editjQuery.jgrid.del 。您可以在下面的old answer中找到相应代码的示例。 .

具体代码errorTextFormat函数应该取决于服务器响应的格式。我在站点内部使用带有 WFC 的 ASP.NET MVC,服务器可以返回 JSON 编码的字符串响应(如果错误来 self 明确抛出的 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
});

该代码并不完美,但您可以使用它来创建自己的代码。

关于jquery - JqG​​rid 形成服务器验证和自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5103424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com