使用cell edit mode in jqGrid,默认行为是,只要单击该单元格或者选择了该单元格并按下回车键,就会在单元格上进入编辑模式。
有没有办法更改此行为,以便单击不会将其置于编辑模式但双击?在输入时进入编辑模式很好。
答案 0 :(得分:2)
直接它不受单元格编辑模式的支持,但在我看来,你可以用与内联编辑相同的方式自己实现它(例如,参见jqGrid - edit only certain rows for an editable column)。您不应将jqGrid的cellEdit
参数设置为true
,而是直接使用http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing#methods中描述的editCell
等单元格编辑方法。
另一种方法是在双击而不是单元格编辑时使用内联编辑。
答案 1 :(得分:0)
首先让我感谢您阅读您的回复我能够提出这个解决方案。我需要一些特定的细胞编辑行为。我只需要点击就能选择一行。没有多选。我需要在双击时激活的单元格编辑。如果单击所选行以外的行,我需要能够取消编辑。我还需要能够限制用户输入。我最初的谷歌搜索将我带到了这里,当我偶然发现你发布的其他项目时,我只是放弃了希望。
这是我提出的解决方案。其中大部分来自您之前的答案。我做了一些改变。所以大部分功劳都归于你,但我想在这里发帖以帮助别人。这是我第一次发布解决方案,所以我希望它是明确和有帮助的。
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);
}