【发布时间】:2014-01-17 09:40:11
【问题描述】:
我正在开发一个使用 jQgrid 生成表数据的 asp.net MVC 4 项目。在我生成的网格中,我为一行中的特定列提供了内联编辑选项。
我的问题是在编辑特定行时,如果我按下 Enter 或 Esc 键,我选择的行将退出编辑模式。
我想禁用这些事件 Enter 和 Esc 。
我用谷歌搜索了这个问题,我得到了一些有趣的帖子How to disable Save Handler on Jqgrid while doing editing
在上面的参考文章中,我可以看到 Jqgrid.src.js 文件中的某些行被注释掉了,我认为这不是最佳解决方案。
是否有任何其他方法可以在 Jqgrid 中同时禁用 Enter 和 Esc 事件进行内联编辑。
Javascript 代码
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"
});
示例网格结构
注意:显示的网格图像不是使用上述代码生成的实际网格。
在上面的网格中,有一些列是可编辑的。我的场景就像我想将数据放在每一行的所有可编辑列中,这样我就可以通过单击放置在下方的按钮将网格数据更新到服务器网格(上图中未显示按钮)。这里我没有使用网格的 editUrl 属性。
目前,如果我编辑第一行并且不小心按 Enter 或 Esc 键,所选行将变为不可编辑。我希望将一行中的所有可编辑单元格保持为可编辑状态,直到我按下放置在网格下方的提交按钮。
我的 jQgrid 版本是 4.5.4
感谢任何帮助。
【问题讨论】:
标签: javascript jquery jqgrid