我在ASP.NET MVC 4网站jQuery 1.7.2中使用jqGrid 4.3.2。应用程序中有几个地方使用jqGrid。我现在的常规设置是所有编辑都在本地完成(loadonce: true
和clientArray
)并进行内联导航和编辑,所有网格数据都通过AJAX调用在表单提交时发布到服务器。我在行编辑和它们承诺的事件中遇到了一些困难。您可以查看该站点(以及源,正在进行的总工作,很好)here。如果添加或编辑行,然后单击页面上的其他位置,则不会保存行编辑。用户必须在行编辑期间的某处按Enter键以保存行。
我在this question中稍微谈了一下,Oleg很友善地回答。除了按下回车键之外,有没有办法提交行编辑,比如当行失去焦点时?
答案 0 :(得分:8)
您可以做的是:
restoreAfterSelect: false
选项。我看到该选项未记录,但您可以在the source code中看到它。如果没有inlineNav
设置使用beforeSelectRow
来调用restoreRow
(请参阅here)。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,
...
不再需要实施自己的解决方案。