6

我在 ASP.NET MVC 4 网站 jQuery 1.7.2 中使用 jqGrid 4.3.2。应用程序中有几个地方用到了 jqGrid。我现在的一般设置是所有编辑都在本地(loadonce: trueclientArray)通过内联导航和编辑完成,并且所有网格数据都通过 AJAX 调用在表单提交时发布到服务器。我在行编辑以及他们提交的事件中遇到了一些困难。您可以在此处查看该站点(和源代码,正在进行的全部工作,请注意)。如果您添加或编辑行,然后单击页面上的其他位置,则不会保存行编辑。用户必须在行编辑期间在某处按下回车键才能保存该行。

我在这个问题中稍微提到了这一点,奥列格很友好地回答了这个问题。除了按下回车键(例如当行失去焦点时)之外,有没有办法提交行编辑?

4

2 回答 2

8

您可以执行以下操作:

  1. 首先,您必须设置inlineNavrestoreAfterSelect: false的选项。我看到该选项没有记录,但您可以在源代码中看到它。没有设置使用调用(见这里)。inlineNavbeforeSelectRowrestoreRow
  2. 实现将上一个编辑行保存在内部(请参阅答案onSelectRow中的代码)或内部。可能会更容易使用,因为需要保存的最后一个编辑行可能只是您可以从选项中获得的最后一个选定行,因为.beforeSelectRowbeforeSelectRowselrowbeforeSelectRow
于 2012-06-13T20:07:37.520 回答
1

对于 2016 年阅读此书的任何人,此功能现已合并到 jqGrid 中。请参阅https://github.com/tonytomov/jqGrid/issues/785。在撰写本文时,jqGrid 5.1 已经发布,因此我希望从 5.2 版本开始可以使用此功能。或者,只需从 GitHub 获取最新的代码。

要使用它,只需在 jqGrid 上设置以下属性:

...
restoreAfterSelect: false,
saveAfterSelect: true,
...

不再需要实施您自己的解决方案。

于 2016-05-17T03:09:42.340 回答