jQgrid:编辑网格行时禁用内联保存和Esc处理程序?

时间:2013-12-30 13:34:07

标签: javascript jquery jqgrid

我正在开发一个使用jQgrid生成表数据的asp.net MVC 4项目。在我生成的网格中,我为一行中的特定列提供了内联编辑选项。

我的问题就像编辑特定行一样,如果我按EnterEsc键,我选择的行将退出编辑模式。

我想禁用Enter和Esc。

这些事件

我用Google搜索了这个问题,我收到了一些有趣的帖子How to disable Save Handler on Jqgrid while doing editing

在上面的参考文章中,我可以看到有些行是从Jqgrid.src.js文件注释掉的,我认为这不是最佳解决方案。

是否有其他方法可以在进行内联编辑时禁用Jqgrid中的EnterEsc事件。

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"

        });

示例网格结构

Sample Grid Image

注意:显示的网格图像不是使用上述代码生成的实际网格。

在上面的网格中有一些列可以编辑。我的场景就像我想将数据放在每一行的所有可编辑列中,这样我就可以通过点击下方的按钮点击将网格数据更新到服务器grid(按钮未在上图中显示)。这里我没有使用grid的editUrl属性。

目前,如果我编辑第一行,并且如果我按下回车键或Esc键,则所选行将变为不可编辑。我希望将所有可编辑单元格保持为可编辑状态,直到我按下网格下方的“提交”按钮。 / p>

我的jQgrid版本是4.5.4

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

很难回答那些既不包含JavaScript代码也不包含您使用的jqGrid版本的确切引用的问题。您没有描述在网格中使用内联编辑的形式。

在内联编辑期间, Esc Enter 的使用可以通过keys: true选项进行管理。 keys选项使用的确切语法取决于您使用内联编辑的 。例如,您可以直接致电editRow或使用其他方法一英里inlineNavformatter: "actions"为您调用editRowkeys选项的默认值已为false,因此您将代码中的值更改为true