代码之家  ›  专栏  ›  技术社区  ›  Nigel

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

  •  2
  • Nigel  · 技术社区  · 16 年前

    使用 cell edit mode in jqGrid ,默认行为是在单击单元格时或选中该单元格并按enter键时,对该单元格进入编辑模式。

    有没有一种方法可以改变这种行为,使一次单击不会将其置于编辑模式,而双击会将其置于编辑模式?按enter键进入编辑模式即可。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    直接来说,单元格编辑模式不支持它,但在我看来,您可以用与内联编辑相同的方式实现它(请参阅 jqGrid - edit only certain rows for an editable column ,例如)。你不应该设置 cellEdit jqGrid to参数 true ,但直接使用单元格编辑方法,如 editCell 中描述 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing#methods

        2
  •  0
  •   NinjaCodeMonkey007    11 年前

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

            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);
            }
    
    推荐文章