jqGrid: замените один щелчок двойным щелчком, чтобы войти в режим редактирования ячейки - PullRequest
2 голосов
/ 13 июля 2010

Используя режим редактирования ячейки в jqGrid , поведение по умолчанию состоит в том, чтобы входить в режим редактирования ячейки при каждом щелчке по этой ячейке или если эта ячейка выбрана и нажата клавиша ввода.

Есть ли способ изменить это поведение, чтобы один щелчок не переводил его в режим редактирования, а двойной щелчок?Вход в режим редактирования при вводе - это нормально.

Ответы [ 2 ]

2 голосов
/ 13 июля 2010

Непосредственно он не поддерживается режимом редактирования ячейки, но мне кажется, что вы можете реализовать его самостоятельно так же, как и для встроенного редактирования (см. jqGrid - редактировать только определенные строки для редактируемого столбца , например).Вы не должны устанавливать cellEdit параметр jqGrid на true, но используйте методы прямого редактирования ячеек, такие как editCell, описанные в http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing#methods.

Другой способ - вместо этого использовать встроенное редактирование при двойном щелчкередактирования ячеек.

0 голосов
/ 06 марта 2015

Прежде всего позвольте мне поблагодарить вас за чтение ваших ответов. Мне удалось найти это решение.Мне нужно было определенное поведение для редактирования ячеек.Мне нужно было иметь возможность выбрать только одну строку одним щелчком мыши.Нет мульти выбора.Мне нужно было редактировать ячейки, которые активировались по двойному клику.Мне нужно было иметь возможность отменить редактирование, если была нажата строка, отличная от выбранной.Мне также нужно было иметь возможность ограничить пользовательский ввод.Мои первые поиски в Google привели меня сюда, и я почти потерял надежду, когда наткнулся на другие материалы, которые вы опубликовали.

Вот решение, которое я придумал.Большая часть из ваших предыдущих ответов.Я сделал некоторые изменения.Так что большая часть этого кредита идет к вам, но я хотел опубликовать его здесь, чтобы помочь другим.Я впервые публикую решение, поэтому надеюсь, что оно понятно и поможет.

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);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...