我正在开发一个使用jQgrid生成表数据的asp.net MVC 4项目。在我生成的网格中,我为一行中的特定列提供了内联编辑选项。
我的问题就像编辑特定行一样,如果我按Enter
或Esc
键,我选择的行将退出编辑模式。
我想禁用Enter和Esc。
这些事件我用Google搜索了这个问题,我收到了一些有趣的帖子How to disable Save Handler on Jqgrid while doing editing
在上面的参考文章中,我可以看到有些行是从Jqgrid.src.js
文件注释掉的,我认为这不是最佳解决方案。
是否有其他方法可以在进行内联编辑时禁用Jqgrid中的Enter
和Esc
事件。
Javascript COde
jQuery("#Grid").jqGrid({
url: baseUrl + '/api/Controller/method',
datatype: "json",
mtype: "POST",
colNames: ['Col1', 'Col2', 'Col3', 'Col4', 'Col5'],
colModel: [
{ name: 'col1', index: 'col1', align: 'center', editable: true, key:true },
{ name: 'col2', index: 'col2', align: 'center' },
{ name: 'col3', index: 'col3', align: 'center', editable: true, key:true },
{ name: 'col4', index: 'col4', align: 'center' },
{ name: 'col5', index: 'col5', align: 'center', editable: true, key:true }
],
jsonReader: {
root: 'data',
id: 'col2',
repeatitems: false
},
pager: $('#Pager'),
rowNum: 10,
rowList: [10, 25, 50, 100],
autowidth: true,
shrinkToFit: false,
viewrecords: true,
loadonce: true,
autoencode: true,
multiselect: true,
height: '100%',
width: '100%',
caption: "Record"
});
示例网格结构
注意:显示的网格图像不是使用上述代码生成的实际网格。
在上面的网格中有一些列可以编辑。我的场景就像我想将数据放在每一行的所有可编辑列中,这样我就可以通过点击下方的按钮点击将网格数据更新到服务器grid(按钮未在上图中显示)。这里我没有使用grid的editUrl属性。
目前,如果我编辑第一行,并且如果我按下回车键或Esc键,则所选行将变为不可编辑。我希望将所有可编辑单元格保持为可编辑状态,直到我按下网格下方的“提交”按钮。 / p>
我的jQgrid版本是4.5.4
感谢任何帮助。
答案 0 :(得分:4)
很难回答那些既不包含JavaScript代码也不包含您使用的jqGrid版本的确切引用的问题。您没有描述在网格中使用内联编辑的形式。
在内联编辑期间, Esc 和 Enter 的使用可以通过keys: true
选项进行管理。 keys
选项使用的确切语法取决于您使用内联编辑的 。例如,您可以直接致电editRow或使用其他方法一英里inlineNav或formatter: "actions"为您调用editRow
。 keys
选项的默认值已为false
,因此您将代码中的值更改为true
。