1

我想用EscEnter键使用内联编辑,我正在使用inlineNav方法。我已经设置keys: trueeditRow方法并且键正在工作。当我使用“添加行”按钮时,键不是第一次分叉。我必须通过鼠标取消此操作,当我再次尝试添加行时,按键工作正常。我不知道如何调试它。这是 jqGrid v. 4.4.4

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

1 回答 1

2

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

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

在这种情况下,您将以任何形式的内联编辑使用Enter​​键工作。在每个格式化程序激活内联编辑的情况下:“操作”的工作方式与添加和编辑按钮相同。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 }
});

有关更多代码示例,请参见答案

更新:我想我找到了你一开始在 Add 操作期间使用但后来工作的原因。原因是我在刚刚发布的错误报告中描述的错误。您可以尝试使用固定版本(您可以在此处获取)。原因是keys: falsekeys: falsejquery.jqGrid.src.js

  1. inlineNav有一个错误:即使我们取消“添加”操作,它也总是editParams在“取消”事件处理程序内部使用(见行)。所以该方法restoreRoweditParams作为参数调用。
  2. 下一个错误是更改而不是仅使用它。要修复错误,必须更改行restoreRow $.jgrid.inlineEdit
o = $.extend(true, $.jgrid.inlineEdit, o );

o = $.extend(true, {}, $.jgrid.inlineEdit, o);
于 2013-03-28T14:49:51.460 回答