【问题标题】:jQGrid : triple click needed to edit a celljQGrid:编辑单元格需要三次单击
【发布时间】:2016-11-18 11:40:14
【问题描述】:

在 JQgrid 中:要编辑一个单元格(不在第一列),我需要单击 3 次鼠标来聚焦一个单元格,我可以双击吗?

例如:如果我想在网格中编辑“描述”列,我需要单击 3 次鼠标。

【问题讨论】:

  • “三次点击” ???!!!请考虑其他阅读您的问题并尝试制定文本的人,以便每个人都了解您所做的以及您需要实施的内容。 您是否需要实现“三次单击”编辑,或者您已经编写了这种奇怪行为的程序,您想消除它? 如果您当前的代码中存在问题,那么您应该包含 JavaScript您在问题文本中使用的代码。
  • @Oleg 问题已编辑
  • @Oleg 请从链接中查看您的演示:ok-soft-gmbh.com/jqGrid/ActionButtons.htm 您还需要点击 3 次才能编辑纳税单元
  • 我需要双击开始编辑。旧的我的演示使用 jqGrid 3.8.2 的复古版本。更高版本有选项,允许通过使用editRowfocusField 选项自定义焦点行为,您可以在ondblClickRow 中调用该选项。我可以为您提供使用free jqGrid 并在ondblClickRow 中启动editRow 的演示,将先前编辑的行保存在beforeSelectRow 中。所以jqGrid中没有常见的问题,需要在双击的单元格上额外设置焦点。
  • @Oleg 你能给我一个演示吗?如果你很忙也没问题

标签: jquery jqgrid


【解决方案1】:

如果你使用免费的jqGrid,那么你可以使用editRowfocusField选项:

ondblClickRow: function (rowid, iRow, iCol, e) {
    $(this).jqGrid("editRow", rowid, { focusField: e.target });
},
beforeSelectRow: function (rowid) {
    var $self = $(this), i,
        // savedRows array is not empty if some row is in inline editing mode
        savedRows = $self.jqGrid("getGridParam", "savedRow");
    for (i = 0; i < savedRows.length; i++) {
        if (savedRows[0].id !== rowid) {
            // save currently editing row
            // one can replace saveRow to restoreRow in the next line
            $self.jqGrid("saveRow", savedRows[i].id);
        }
    }
    return savedRows.length === 0; // allow selection if saving successful
},

https://jsfiddle.net/ft7zsocy/

【讨论】:

  • 它正在工作,但在编辑后输入键 - 在该表单提交发生之前未保存行。有什么想法吗?
  • @thalla:这只是editRow 的一个选项。您可以将$(this).jqGrid("editRow", rowid, { focusField: e.target });修改为$(this).jqGrid("editRow", rowid, { focusField: e.target, keys: true });或添加inlineEditing选项,指定内联编辑的默认选项,如inlineEditing: { keys: true }。见jsfiddle.net/ft7zsocy/1
  • 非常感谢。应该有标记 Oleg 的选项 :)
猜你喜欢
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多