这可能是一个2部分的问题。第一个是“我做错了什么”,第二个是“这是正确的方法吗?”。无论如何...
我正在尝试使用jqgrid保存已编辑的行,由于某些原因我尚未识别,我无法使用inline editing触发错误事件。
table.saveRow(rowId,
false,
false,
optionalParams,
false,
function () { common.ShowMeSomething("error fired"); },
false);
所有ShowMeSomething现在都是一个提醒,没什么大不了的,但不会开火。我已经开放了源代码,它是一个$ .extend with complete:function(res,stat) - 我试图模仿那些返回Json(new {res =“hi”,stat = false})没有运气,沿着javascript向下触发错误事件。没有运气。
此外,还有更好的方法吗?出于验证原因,我需要回复错误。
答案 0 :(得分:1)
问题是文档不清楚。在某些网格功能中,error == false和success == true,但情况并非如此。第一个参数是rowId,第二个参数是成功调用到服务器(基本上,它是否存在并且我得到了一个http响应),我所期望的是为了完全失败而保留我不是能够创造。
将函数移动到第二个参数并从结果中执行错误处理允许我想要的东西 - 简单返回Json(whateverObject)并执行需要执行的操作,例如重置,显示错误等。< / p>
答案 1 :(得分:0)
您不包含jqGrid的代码和产生错误的MVC控制器操作的代码。所以我只能猜出你问题的原因是什么。
服务器部分的一个原因可能是您尝试将错误作为Json(...)
返回,而不是将HTTP response status code更改为错误代码。如果出现错误,您可以使用HttpContext.Response.StatusCode = 500
等代码设置响应代码,也可以使用HttpException。
客户端的另一个可能原因是您尝试保存当前未针对editRow编辑的行。方法editRow为编辑行设置了附加属性“editable”=“1”,saveRow只保存了具有此属性的行。
您可以在问题正文中包含更多客户端和服务器代码,以便更好地为您提供帮助。