我正在 ASP.NET MVC 4 网站、jQuery 1.7.2 中使用 jqGrid 4.3.2。应用程序中有几个地方使用了jqGrid。我现在的一般设置是,所有编辑都是通过内联导航和编辑在本地完成(loadonce: true
和 clientArray
),并且所有网格数据都以表单形式发布到服务器通过 AJAX 调用提交。我在行编辑以及它们在哪些事件中提交时遇到了一些困难。您可以查看该站点(以及源代码、正在进行的全部工作,请友善)here 。如果您添加或编辑一行,然后单击页面上的其他位置,则不会保存行编辑。用户必须在行编辑期间按回车键才能保存该行。
我在 this question 中对此进行了一些讨论。 ,其中 Oleg很友善地回答。除了按下回车键(例如当行失去焦点时)之外,是否有其他方法可以提交行编辑?
最佳答案
您可以执行以下操作:
- 首先,您必须设置 inlineNav 的
restoreAfterSelect: false
选项。我发现该选项没有记录,但您可以在 the source code 中看到它。如果没有设置,inlineNav
使用beforeSelectRow
调用restoreRow
(请参阅 here)。 - 在
onSelectRow
内部(请参阅 the answer 中的代码)或beforeSelectRow
内部实现上一个编辑行的保存。可能beforeSelectRow
的使用会更容易,因为需要保存的最后一个编辑行可能只是您可以从selrow
选项获取的最后选定的行,因为beforeSelectRow
内部的值尚未更改。
关于jquery - jqGrid 不保存内联行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11021992/