jqGrid:双击单击以进入单元格编辑模式

在jqGrid中使用单元格编辑模式 ,默认行为是,只要单击该单元格或者如果选择了该单元格并按下回车键,就会在单元格上进入编辑模式。

有没有办法更改此行为,以便单击不会将其置于编辑模式,但双击? 在输入时进入编辑模式很好。

直接它不受单元格编辑模式的支持,但在我看来,你可以用与内联编辑相同的方式自己实现它(例如,参见jqGrid – 仅编辑可编辑列的某些行 )。 您不应将jqGrid的cellEdit参数设置为true ,而是直接使用http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing#methods中描述的editCell等单元格编辑方法。

另一种方法是在双击而不是单元格编辑时使用内联编辑。

首先,让我感谢您阅读您的回复,我能够提出这个解决方案。 我需要一些特定的细胞编辑行为。 我只需要点击就能选择一行。 没有多选。 我需要在双击时激活的单元格编辑。 如果单击所选行以外的行,我需要能够取消编辑。 我还需要能够限制用户输入。 我最初的谷歌搜索将我带到了这里,当我偶然发现你发布的其他项目时,我只是放弃了希望。

这是我提出的解决方案。 其中大部分来自您之前的答案。 我做了一些改变。 所以大部分功劳都归你所有,但我想把它发布在这里以帮助别人。 这是我第一次发布解决方案,所以我希望它是明确和有帮助的。

edit.iCol。 存储edit.iRow和edit.rowID,以便我们可以对编辑进行取消。 在此处使用您自己的变量来存储这些值。

  cellEdit: true, cellsubmit: 'clientArray', beforeSelectRow: function(rowid) { if (edit.iRow != null && rowid !== edit.rowID) { $('#list').jqGrid("restoreCell",edit.iRow, edit.iCol); edit.iRow = edit.iCol = null; } $('#list').jqGrid('setSelection', rowid); }, afterSaveCell: function (rowid, name, val, iRow, iCol) { alert("after"); }, beforeSaveCell: function (rowid, name, val, iRow, iCol) { alert("before"); }, ondblClickRow: function (rowid, iRow,iCol) { edit.iRow = iRow; edit.iCol = iCol; edit.rowID = rowid; $("#list").editCell(iRow, iCol, true); }