jqGrid不保存内联行编辑

时间:2012-06-13 19:28:24

标签: jquery jqgrid

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

我在this question中稍微谈了一下,Oleg很友善地回答。除了按下回车键之外,有没有办法提交行编辑,比如当行失去焦点时?

2 个答案:

答案 0 :(得分:8)

您可以做的是:

  1. 首先,您必须设置inlineNavrestoreAfterSelect: false选项。我看到该选项未记录,但您可以在the source code中看到它。如果没有inlineNav设置使用beforeSelectRow来调用restoreRow(请参阅here)。
  2. onSelectRow内部(见the answer的代码)或beforeSelectRow内部保存上一个编辑行。可能更容易使用beforeSelectRow,因为最后一个需要保存的编辑行可能只是您可以从selrow选项中获取的最后一行,因为内部的值尚未更改beforeSelectRow

答案 1 :(得分:1)

对于2016年阅读此内容的人来说,此功能现已合并到jqGrid中。见https://github.com/tonytomov/jqGrid/issues/785。在撰写本文时,jqGrid 5.1已经发布,所以我希望从5.2版本开始提供此功能。或者只是从GitHub获取最新的代码。

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

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

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