jqGrid内联编辑 - addRow键第一次不起作用

时间:2013-03-28 14:13:47

标签: jqgrid jqgrid-inlinenav

我想使用 Esc Enter 键进行内联编辑,我正在使用inlineNav方法。我已经为keys: true方法设置了editRow,并且密钥正在运行。虽然我使用“添加行”按钮,但键第一次没有分叉。我必须通过鼠标取消此操作,当我尝试再次添加行时,键正常工作。我不知道如何调试这个。这是jqGrid v.4.4.4

$("myGrid").jqGrid(finalConfig)
  .navGrid(gridToolbar).inlineNav(gridToolbar, {
     editParams: { keys: true }
  }
);

1 个答案:

答案 0 :(得分:2)

如果您想为内联编辑定义一些常用设置,我建议您使用$.jgrid.inlineEdit。例如

$.extend($.jgrid.inlineEdit, { keys: true });

如果您将 Enter 键以以任何形式使用内联编辑工作。在每个格式化程序激活的内联编辑的情况下:“actions”的工作方式与inlineNav添加的添加和编辑按钮的工作方式相同。

或者你必须按照以下方式为inlineNav指定“添加行”按钮的选项

$("#myGrid").jqGrid("inlineNav", "#pager", {
    editParams: { keys: true },
    addParams: { addRowParams: { keys: true } }
});

通常,在一个对象中定义所有内联编辑选项,并使用相同的选项对象两次:

var editingOptions = { keys: true };

$("#myGrid").jqGrid("inlineNav", "#pager", {
    editParams: editingOptions,
    addParams: { addRowParams: editingOptions }
});

有关更多代码示例,请参阅the answer

更新:我认为我找到了为什么你在开始时在添加操作期间使用keys: false的原因,但后来keys: false正在工作。原因是我刚才发布的the bug report中描述的错误。您可以尝试使用jquery.jqGrid.src.js的固定版本(您可以获取here)。原因是

  1. inlineNav有一个错误:即使我们取消“添加”操作,它也会在“取消”事件处理程序(请参阅the line)中始终使用editParams。因此,使用restoreRow作为参数调用方法editParams
  2. 下一个错误是restoreRow the line更改 $.jgrid.inlineEdit而不仅仅是使用它。要修复错误,必须更改行
  3. o = $.extend(true, $.jgrid.inlineEdit, o );
    

    o = $.extend(true, {}, $.jgrid.inlineEdit, o);