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

时间:2010-07-13 11:21:14

标签: jquery jqgrid

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

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

2 个答案:

答案 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);
        }